Javascript 将实例变量传递给webpacker JS
在Rails应用程序中,是否可以将当前实例变量传递给通过webpacker(而不是链轮)加载的javascript文件? 这可能会阻止我通过执行以下操作将数据传递到基于组件的框架(如Vue):Javascript 将实例变量传递给webpacker JS,javascript,ruby-on-rails,webpack,webpacker,Javascript,Ruby On Rails,Webpack,Webpacker,在Rails应用程序中,是否可以将当前实例变量传递给通过webpacker(而不是链轮)加载的javascript文件? 这可能会阻止我通过执行以下操作将数据传递到基于组件的框架(如Vue): const el= 我的想法是简化它,这样我就不需要在向前端框架提供数据的同时使用Rails作为API。 在我看来,将数据放在HTML中的div或表单中的想法很混乱。 我甚至认为,如果我可以创建一个空的javascript文件,加载到sprocket上,我只需创建变量,然后加载到用webpack加载的文
const el=
我的想法是简化它,这样我就不需要在向前端框架提供数据的同时使用Rails作为API。
在我看来,将数据放在HTML中的div或表单中的想法很混乱。
我甚至认为,如果我可以创建一个空的javascript文件,加载到sprocket上,我只需创建变量,然后加载到用webpack加载的文件中,但它仍然可能过于工程化。。。有人能帮我吗?你能“用javascript响应”吗
在控制器中,您将有如下内容:
def index
@employees = Employees.all # Load data
respond_with do |format|
format.html
format.js
end
end
然后您将有index.js.erb
:
const el = <%= @employees.to_json %>
const el=
但是使用Rails作为API
您还可以将该javascript变量放入HTML中的
标记中,可能会有所帮助。
只需在控制器中设置变量:
gon.employees = @employees.to_json
在js
gon.employees
上也可以使用,我的意思是在app/javascript/packs中使用webpacker加载js的实例变量,但我认为这些js的上下文与rails响应或html的上下文不同。我错了吗?@jacopogobi JS的加载方式无关紧要。如果它是在用户端运行的,您可以通过rails在HTMLDOM中或通过ajax请求进行设置。您好,我检查得更好,实例变量没有加载到webpack加载的css上。如果你克隆了master,你可以自己尝试克隆这个repo,你会看到我在最近的提交中使用@vasily指定的gon解决了这个问题-shakhunov@JacopoGobbi啊,我明白问题是什么了app/javascript
在控制器操作之前进行编译。所以那个变量在那个时候永远不会被填充。不过简单的ruby注入就可以了。谢谢!!!多亏了你,我才能够创建(我认为是)一个很好的VUEonRails网页框架!(无链轮)