将实例变量传递给 webpacker JS
Passing instance variable to webpacker JS
在 Rails 应用中,是否可以将当前实例变量传递给通过 webpacker(不是 sprockets)加载的 javascript 文件?
这可能会阻止我通过执行以下操作将数据传递给基于组件的框架,如 Vue:
const el = <%= @employees.to_json %>
我的想法是简化它,这样我就不需要将 Rails 用作 API,同时仍然向前端框架提供数据。
将数据放入 div 或将表格放入 HTML 的想法对我来说似乎很混乱。
我什至想如果我可以创建一个加载到 sprocket 上的空 javascript 文件,我只创建变量,然后将其加载到使用 webpack 加载的文件中,但它仍然可能过度工程......有人可以帮助我吗?
你能"respond with 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>
标记中
也许 gon gem could help. Railscast。
只需在控制器中设置变量:
gon.employees = @employees.to_json
它将在 js 上可用 gon.employees
在 Rails 应用中,是否可以将当前实例变量传递给通过 webpacker(不是 sprockets)加载的 javascript 文件? 这可能会阻止我通过执行以下操作将数据传递给基于组件的框架,如 Vue:
const el = <%= @employees.to_json %>
我的想法是简化它,这样我就不需要将 Rails 用作 API,同时仍然向前端框架提供数据。 将数据放入 div 或将表格放入 HTML 的想法对我来说似乎很混乱。 我什至想如果我可以创建一个加载到 sprocket 上的空 javascript 文件,我只创建变量,然后将其加载到使用 webpack 加载的文件中,但它仍然可能过度工程......有人可以帮助我吗?
你能"respond with 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>
标记中
也许 gon gem could help. Railscast。 只需在控制器中设置变量:
gon.employees = @employees.to_json
它将在 js 上可用 gon.employees