我在我的轨道控制器定义的数组存储:如何访问在javascript中轨阵列下资产
str_array = ["Hi","hello"]
我需要在资产存储在我的JavaScript文件访问此数组。 我已经在我的js中定义了一个变量类型的数组数组。我试图访问这样的,但未能:
var js_arr = [<%= raw @str_array.to_json %>];
是否有任何其他的方式来访问我的javascript轨道阵列?
我在我的轨道控制器定义的数组存储:如何访问在javascript中轨阵列下资产
str_array = ["Hi","hello"]
我需要在资产存储在我的JavaScript文件访问此数组。 我已经在我的js中定义了一个变量类型的数组数组。我试图访问这样的,但未能:
var js_arr = [<%= raw @str_array.to_json %>];
是否有任何其他的方式来访问我的javascript轨道阵列?
一个很干净的方法,从回报率传递的东西JS是gon gem。
与雇员再培训局或这样的东西没有讨厌的印刷变量。
你会得到一个名为gon
一个对象,你可以堆到的数据在你的回报率控制器。将include_gon
添加到您的布局,并且voilà - gon对象也可以在JS中使用。
您是否添加了.erb扩展,JavaScript文件?
另外,看看Gon:https://github.com/gazay/gon。 Gon允许你从你的控制器设置JS变量。 – pdoherty926 2013-02-25 19:52:18
感谢您的回答。我会通过这个尝试这个选项。 – 2013-02-25 20:51:25
其工作..非常感谢。 – 2013-02-25 21:13:17
有两种方法。
1)通过AJAX它传递到JavaScript作为必要的。 (例如在按钮点击等)。
2)将inline javascript放入您想要访问它的视图模板(erb,haml或w/e)之一中,然后在方法调用中将#{rails_array} .to_json传递给Rails数组。
首先是更清洁,更可测试,并且在长期更易于维护。第二个更容易实现。
嗨亚伯拉罕..谢谢你的答案..你可以请第一点清楚,因为我试图把ajax部分放在我的index.html.erb中,并将数组传递给我的js,但它不显示在页面上。 – 2013-02-25 20:47:05
我试过这个宝石和它的工作..谢谢。 – 2013-02-25 21:12:54