将实例变量传递给webpacker JS

时间:2018-02-08 17:52:09

标签: javascript ruby-on-rails webpack webpacker

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

const el = <%= @employees.to_json %>

我的想法是简化它,以便我不需要将Rails用作API,同时仍然向前端框架提供数据。 将数据放入HTML中的div或表单中的想法对我来说似乎很混乱。 我甚至认为如果我可以在sprocket上创建一个空的javascript文件,我只是创建变量,然后我在加载webpack的文件中加载但是它仍然可能过度工程......有人能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

你可以“用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 %>

但是使用Rails作为API

您还可以将该javascript变量放入HTML

中的<script>标记中

答案 1 :(得分:1)

也许gon gem可以提供帮助。 Railscast。 只需在控制器中设置变量:

gon.employees = @employees.to_json

它将适用于js gon.employees