通过 HTML 将 Ruby on Rails 变量传递给 JavaScript 函数
passing ruby on rails variables to javascript function via html
我有以下代码:
<table id = "mytable">
<tbody>
<% @event.each do |event| %>
<!-- call javascript function here -->
do_stuff ( <%= event %>)
<% end %>
</tbody>
</table>
结果是:
do_stuff(#<Event:0x1118119d> do_stuff(#<Event:0x432c632f> do_stuff(#<Event:0x1723c51d> do_stuff(#<Event:0x2d61fec9> do_stuff(#<Event:0x7c9e5565> do_stuff(#<Event:0x7ef899cd> do_stuff(#<Event:0x7339a2da>
调用 javascript 函数的正确语法是什么do_stuff?
你需要将javascript包装在脚本标签中:
<script type="text/javascript">do_stuff('<%= event %>')</script>
并确保整个事件对象是你想要传递的对象,因为javascript不知道如何处理它。将其拆分为要发送的任何事件属性:
<script type="text/javascript">do_stuff('<%= event.attribute1 %>', '<%= event.attribute2 %>')</script>
我建议以不同的方式构建它。通过使用类似 gon gem 的东西,你可以使 @event
变量对 javascript 函数可见。然后,在javascript中执行整个循环,这样html视图中的Ruby代码就会减少。您可以使用纯 javascript 或来自库(如 jquery、lodash)或您可能碰巧使用的任何其他 JavaScript 库的便利函数来遍历数组。
谢谢,实际上最好的方法是创建一个javascript对象,从我的ruby对象填充它,然后调用我想运行的javascript函数:
<script type="text/javascript">
x = new Object();
x.attr1 = "<%= event.attr1 %>";
x.attr2 = "<%= event.attr2 %>";
do_stuff(x);
</script>
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别