[英]Pass multiple variables to render json in rails cotroller
我試圖將數據從控制器傳遞給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%>
任何線索將不勝感激。
干杯!
render json
調用將呈現單個對象,因此嘗試將所有數據存儲在單個JSON對象(或數組)中:
respond_to do |format|
format.html
format.json { render json: {all_data: {data: @data, data1: @data1, data2: @data2}}}
end
在前端:
<%= javascript_tag do%>
window.data = <%= raw @all_data.to_json %>
<%end%>
現在, window.data
應該包含window.data.data
, window.data.data1
, window.data.data2
所需的一切。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.