2017-08-04 114 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> 

當我呈現的觀點,我只得到了第一個和第三個消息。但是,當我將這段代碼添加到dashboard.html.erb中而不是通過ajax代碼進行渲染時,它完全可行。

在第一種情況下,我收到以下錯誤。

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。 也是這樣的,這會在Chrome執行js時產生一個斷點。

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

這將幫助您查看jQuery正在嘗試添加爲HTML。

如果這不起作用,

也許你應該採取的JS在script標籤,並把它放在了一些方法,並調用該方法已添加索引DOM後。

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

我嘗試省略escape_javascript它沒有工作。我也嘗試在渲染索引後加載angularJS,但它並沒有工作。 –

+0

您是否在瀏覽器控制檯中看到錯誤?將調試器放在$ scope.firstName =「John」上面;然後一次運行一個步驟 –

+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(在jd(angular.js:1697) 處在cd(angular.js:1676) 處在HTMLDocument處的Zd(angular.js:1591) 處。 (angular.js:29013) at fire(jquery.self-bd7ddd3 ... .js?body = 1:3233) –