我正在尝试将数据从控制器传递到JavaScript。以下是如何实现:
respond_to do |format|
format.html
format.json { render json: {data: @data} }
end
然后在您的视图文件中,您应该这样做:
<%= javascript_tag do%>
window.data = <%= raw @data.to_json %>
<%end%>
<script>
for( i = 0; i < data.length; i++ ) {
alert(data[i]);
}
</script>
有道理。对吧?
然而,上面的代码只是在json代码中传递一个变量,即数据变量。我需要做的是将多个变量传递给我的javascript代码。
应该这样做:
respond_to do |format|
format.html
format.json { render json: {data: @data, data1: @data1, data2: @data2} }
end
现在, - 我该如何在视图文件中访问data1和data2变量? - 我需要修改window.data吗?我尝试过下面的代码,但它没有成功。给了我一个参数错误。
<%= javascript_tag do%>
window.data = <%= raw @data.to_json, @data1.to_json %>
<%end%>
非常感谢您的垂询。
谢谢!
alert window.data
时,它返回null。 - Rahul Bhargavaall_data
。我可以尝试进行更新。 - hagope