Rah*_*ava 4 javascript json ruby-on-rails ruby-on-rails-4
我试图将数据从控制器传递给javascript.这是你如何做到的,
respond_to do |format|
format.html
format.json { render json: {data: @data} }
end
Run Code Online (Sandbox Code Playgroud)
然后在您的视图文件中,您应该这样做:
<%= javascript_tag do%>
window.data = <%= raw @data.to_json %>
<%end%>
<script>
for( i = 0; i < data.length; i++ ) {
alert(data[i]);
}
</script>
Run Code Online (Sandbox Code Playgroud)
合理.对?
但是,上面的代码是在json代码中只传递一个变量,即数据变量.我需要做的是将多个变量传递给我的javascript代码.
应该这样做:
respond_to do |format|
format.html
format.json { render json: {data: @data, data1: @data1, data2: @data2} }
end
Run Code Online (Sandbox Code Playgroud)
现在, - 我应该如何访问视图文件中的data1和data2变量? - 我需要修改window.data吗?我尝试了下面的代码但它没有成功.给我参数错误.
<%= javascript_tag do%>
window.data = <%= raw @data.to_json, @data1.to_json %>
<%end%>
Run Code Online (Sandbox Code Playgroud)
任何线索将不胜感激.
干杯!
该render json调用将呈现单个对象,因此请尝试将所有数据存储在单个JSON对象(或数组)中:
respond_to do |format|
format.html
format.json { render json: {all_data: {data: @data, data1: @data1, data2: @data2}}}
end
Run Code Online (Sandbox Code Playgroud)
在前端:
<%= javascript_tag do%>
window.data = <%= raw @all_data.to_json %>
<%end%>
Run Code Online (Sandbox Code Playgroud)
现在window.data应该有你需要的一切window.data.data,window.data.data1,window.data.data2.
| 归档时间: |
|
| 查看次数: |
3228 次 |
| 最近记录: |