簡體   English   中英

傳遞多個變量以在rails cotroller中渲染json

[英]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.datawindow.data.data1window.data.data2所需的一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM