繁体   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