簡體   English   中英

Rails-將信息從視圖傳遞到Javascript

[英]Rails- Pass information from view to Javascript

我想開始使用websockets。 我閱讀了所有文檔並理解了所有內容,但是卻遺漏了我需要的東西:如何將信息從視圖傳遞到JS?

我需要將數據從javascript傳遞到控制器。 我不明白的是,如何在視圖中動態生成要發送給javascript的數據?

現在,我的視圖在每個HTTP請求上接收一個實例變量,它遍歷每個實例變量並創建一個按鈕,該按鈕提交具有從該實例變量提取的信息的哈希。 我不明白如何用Javascript做同樣的事情,因為Javascript無法理解Ruby類。

這是我的代碼現在的樣子:

查看/儀表板/_other_characters.html.erb

<% other_characters.each do |other_character| %>
  <p><%= other_character.name %> is standing here (<%= other_character.power_level %>)</p>

  <%= button_to "punch #{other_character.name}",
    attacks_path(
      target_type: other_character.class,
      attack_type: :punch, 
      target_id: other_character,
      target_name: other_character.name
  ) %>
<% end %>

這就是我想使用JS能夠做到的

var task = {
  name: 'Start taking advantage of WebSockets',
  completed: false
}
var dispatcher = new WebSocketRails('localhost:3000/websocket');
dispatcher.trigger('tasks.create', task);

嘗試

<%= button_to "punch #{other_character.name}",
  attacks_path(
    target_type: other_character.class,
    attack_type: :punch, 
    target_id: other_character,
    target_name: other_character.name
  ), {id: '***', data: {name: '***', other_key: 'other_value'} } %>

然后,您可以通過jQuery數據API訪問數據。

當您需要通過客戶端js從視圖獲取動態數據時,請在視圖dom中添加數據屬性,然后從dom API或其他第三方js API中讀取它。

為了將信息從ruby傳遞到javascript,您可以使用以下gem: Gon ,基本上它可以轉換ruby變量並使它們可用於每個視圖上的javascript,請看一下: http : //railscasts.com/episodes/324-passing-數據到javascript來實現您的目的的任何其他替代方法,請訪問: https : //www.ruby-toolbox.com/categories/javascript_tools#paloma

暫無
暫無

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

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