2017-08-04 21 views
0

Ruby on Railsアプリケーションで、私はajax呼び出しでビューを生成しています。Ruby on Railsスクリプトがロードされていません

次のコードを使用しています。

$("#a_div_id").html("<%= escape_javascript(render 'index')%>"); 

そして、私はレンダリングしようとしているビューが_index.html.erbである:私はビューをレンダリングするとき

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 


<div ng-app="myApp" ng-controller="myCtrl"> 

    First Name: <input type="text" ng-model="firstName"><br> 
    Last Name: <input type="text" ng-model="lastName"><br> 
    <br> 
    Full Name: {{firstName + " " + lastName}} 
</div> 

<script> 

    alert('first'); 

    var app = angular.module('myApp', []); 
    app.controller('myCtrl', function($scope) { 

     alert('second'); 

     $scope.firstName = "John"; 
     $scope.lastName = "Doe"; 
    }); 

    alert('third'); 

</script> 

、私は第一及び第三のメッセージを取得しています。しかし、このコードをajaxコードでレンダリングするのではなく、dashboard.html.erbに追加すると、完全に機能します。

最初のケースでは、次のエラーが発生しています。私は私の知恵末端にあることだ

angular.min.js:6 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=myApp&p1=Error%3A%2…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.4.8%2Fangular.min.js%3A20%3A274) 
    at angular.min.js:6 
    at angular.min.js:38 
    at n (angular.min.js:7) 
    at g (angular.min.js:37) 
    at eb (angular.min.js:41) 
    at c (angular.min.js:19) 
    at yc (angular.min.js:20) 
    at Zd (angular.min.js:19) 
    at HTMLDocument.<anonymous> (angular.min.js:294) 
    at fire (jquery.self-bd7ddd3….js?body=1:3233) 

、私は、私が欠けているものを決定

任意の提案、

おかげcouln't。

答えて

0

escape_javascriptを試してみることができますか? また、debuggerをこのように置くと、chromeがjsを実行するときにブレークポイントが設定されます。役立つだろう

debugger; 
$("#a_div_id").html("<%= render 'index' %>"); 

あなたは正確にjQueryのHTMLとして追加しようとしているものを参照してください。あなたがDOMにインデックスを追加した後

これが動作しない場合は、

は、おそらくあなたはscriptタグでJSを取り、いくつかの方法でそれを入れて、そのメソッドを呼び出す必要があります。

$("#a_div_id").html("<%= render 'index' %>"); 
myMethodToRenderAngular(); 
+0

私はescape_javascriptを省略しようとしましたが動作しませんでした。私はまた、インデックスをレンダリングした後にangularJSをロードしようとしましたが、うまくいきませんでした。 –

+0

ブラウザのコンソールにエラーが表示されますか? '$ scope.firstName =" John ";'の上にデバッガを置き、一度に1つのステップを実行してください –

+0

Yeap。未知のエラー:[$ injector:modulerr] http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=myApp&p1=Error%3A%2...ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1 4.8%2Fangular.min.js%3A20%の3A274)angular.jsで :38 angular.jsで :4458 nにおける (angular.js:340) gで(angular.js:4419) EBで( (角度.js:4397) at c(angular.js:1676) at yc(angular.js:1697) at Zd(angular.js:1591) at HTMLDocument (angular.js:29013) (jquery.self-bd7ddd3 ... .js?body = 1:3233) –

関連する問題