【发布时间】:2020-01-02 05:07:20
【问题描述】:
我目前正在尝试 Rails 6.0.0,它似乎已将默认的 javascript 文件夹从 app/assets/javascript 移动到 app/javascript。 application.js 文件现在位于 app/javascript/packs。
现在,我想为每个控制器动作添加 JS 文件。例如我有:
-
UsersController#index -
UsersController#show UsersController#edit
在某些控制器操作上,我需要添加一些 javascript:
app/javascript/user/index.jsapp/javascript/user/show.jsapp/javascript/user/edit.js-
app/javascript/user/form.js(假设我需要一些 js 调整)
这是我目前正在做的事情。在控制器视图中:
<%= javascript_pack_tag 'user/index', 'data-turbolinks-track': 'reload' %>
但是,在index.js 中,我无法调用application.js 中所需的库。例如在 application.js 中:
require("bootstrap/dist/js/bootstrap")
在 index.js 中,我将引导特定的 JS 称为弹出框、模态...我得到了:
Uncaught TypeError: $(...).modal is not a function
我不想在 application.js 中编写所有 JS,因为每个页面都必须加载整个网站的 JS,这太疯狂了!这就是为什么我要拆分它们并在需要时包含它们。
另外,为什么我们必须在application.js 中引入 JS 文件?如果我们使用javascript_pack_tag,我们是否需要在application.js 中要求这些文件?
这是我刚刚创建的 dummy 存储库。
参考:here 解释如何需要自定义 JS 文件。
【问题讨论】:
-
我无法将其标记为重复,但这已在此之前得到解答:stackoverflow.com/questions/56242664/…
-
包含
app/javascript/user/form.js包的标准是什么? -
@Gotenks-J 谢谢,但我在发布这个问题之前阅读了该帖子,让我更新参考链接
-
@SebastianPalma 我猜想在客户端进行一些验证
标签: javascript ruby-on-rails webpack webpacker ruby-on-rails-6