我在Ruby on Rails中遇到了javascripts资产的问题。
Descripttion:
我在app / assets / javascript文件夹中有两个文件。
- “constans.js”包含一个常量数组“var FEATURES = new Array [”A“,”B“,”C“]”
- “route.js.erb”<%= FEATURES [1]%>
醇>
现在,我正在“route.js.erb”中实现我的功能但是我无法访问“FEATURES”数组?
我在Google上搜索过但无法找到解决方案
那么,有谁可以帮助我?谢谢!
(我的第一个问题是堆栈溢出,抱歉我的英语不好)
答案 0 :(得分:1)
使用
window.FEATURES = new Array [" A"," B"," C"]"
在constants.js中
并确保正在加载constants.js。
答案 1 :(得分:0)
有几个重要因素:
- Scoping of the variable
- 在ERB中调用变量
醇>
<强>范围强>
首先,您需要确保您的变量全局范围。为此,您已在constants.js
中声明了变量,因此您需要确保在routes.js.erb
文件之前调用此变量。您还应该考虑@user3243476
的建议&amp;将其附加到window
对象:
#js/constants.js
window.FEATURES = new Array["A","B","C"]
<强> ERB 强>
其次,你正在调用routes.js.erb
(这很好),但你正在调用<%= FEATURES["1"] %>
。问题。这是一个Rails常量,不是 JS。这意味着即使你的变量的范围是全局的,你也试图调用一个不存在的范围。
你需要这样做:
#js/routes.js.erb
alert(FEATURES["1"]);