Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将实例变量传递给webpacker JS_Javascript_Ruby On Rails_Webpack_Webpacker - Fatal编程技术网

Javascript 将实例变量传递给webpacker JS

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加载的文

在Rails应用程序中,是否可以将当前实例变量传递给通过webpacker(而不是链轮)加载的javascript文件? 这可能会阻止我通过执行以下操作将数据传递到基于组件的框架(如Vue):

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网页框架!(无链轮)