0
我遇到了通過ajax調用將內容加載到內容div的問題。通過ajax調用渲染Ruby on Rails無法按預期工作
我在我的應用程序中使用下面的代碼ChangeAvatarController。
class ChangeAvatarController < ApplicationController
before_action :authenticate_user!
def index
render '_index', :layout => false
end
end
end
在我dashboard.html.erb我有以下的div
<div id="content">
</div>
我有下面這段代碼
應用程序/視圖/ change_avatar/_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>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>
和APP /視圖/ change_avatar/_index.js.erb
$("#content").html("<%= escape_javascript(render 'index')%>");
我在rooutes.rb以下航線
get 'change_avatar/index'
所以,
當我渲染index.html.erb用以下方式很完美:
<div id="content>
<%= render 'change_avatar/index', remote: true %>
</div>
名:John
姓氏:Doe
全名:李四
然而,當我用下面的方法,
<script>
$.ajax({
url: "/change_avatar/index",
type: 'GET',
cache: false,
success: function(html){
$("#content").append(html);
}
})
</script>
<div id='content'>
</div>
我得到這樣的一個:
名字:
姓:
全名:{{firstName +「」+ lastName}}
在javascript調試控制檯中沒有錯誤。
我想不通的問題是什麼,
任何建議,
感謝。
葉氏我在我的changeavatars文件夾中有index.js.erb文件。當我chnage呈現'_index'呈現'索引'在我的控制器中,我收到以下錯誤。 –
jquery.self-bd7ddd3 ... .js?body = 1:350 Uncaught SyntaxError:意外標識符 at eval() at jquery.self-bd7ddd3 ... .js?body = 1:350 at Function.globalEval(jquery.self-bd7ddd3 ... .js?body = 1 :351) 在文本腳本(jquery.self-bd7ddd3 ...的.js體= 1:10373) 在ajaxConvert(jquery.self-bd7ddd3 ...的.js體= 1:9333) 在有(jquery.self- (jquery.self-bd7ddd3 ... .js?body = 1:10312) at Object.send(jquery.self-bd7ddd3 ... .js?body = 1:10322)在回調(jquery.self-bd7ddd3 ... .js?body = 1:10312) ) at Function.ajax(jquery.self-bd7ddd3 ... .js?body = 1:9739) –