首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 6-在某些控制器操作中需要JS文件

Rails 6-在某些控制器操作中需要JS文件
EN

Stack Overflow用户
提问于 2019-08-29 00:11:10
回答 2查看 1.2K关注 0票数 1

我目前正在尝试Rails 6.0.0,它似乎将默认的javascript文件夹从app/assets/javascript移动到app/javascriptapplication.js文件现在位于app/javascript/packs中。

现在,我想为每个控制器操作添加JS文件。例如,我有:

  • UsersController#index
  • UsersController#show
  • UsersController#edit

对于某些控制器操作,我需要添加一些javascript:

  • app/javascript/user/index.js
  • app/javascript/user/show.js
  • app/javascript/user/edit.js
  • app/javascript/user/form.js (假设在表单中我需要一些js调整)

以下是我目前正在做的事情。在控制器视图中:

代码语言:javascript
复制
<%= javascript_pack_tag 'user/index', 'data-turbolinks-track': 'reload' %>

但是,在index.js中,我不能调用application.js所需的库。例如,在application.js中:

代码语言:javascript
复制
require("bootstrap/dist/js/bootstrap")

在index.js中,我将引导特定的JS称为popover,模式.我得到了:

代码语言:javascript
复制
Uncaught TypeError: $(...).modal is not a function

我不想用application.js写所有的JS,因为每个页面都要加载整个网站JS,这是个疯子!所以我想把它们分开,包括在我需要的时候。

此外,我们为什么要在application.js中要求JS文件?如果我们使用javascript_pack_tag,我们需要在application.js中要求那些文件吗?

这是我刚创建的虚拟的回购。

Ref:这里解释了如何要求自定义JS文件。

EN

回答 2

Stack Overflow用户

发布于 2019-10-03 17:12:32

添加到您的application.html.erb

代码语言:javascript
复制
<%= javascript_pack_tag controller_name %> for controllers <br/>
<%= javascript_pack_tag action_name %> for actions
票数 0
EN

Stack Overflow用户

发布于 2022-11-07 18:22:41

您可以创建一个文件夹结构作为视图。因此,假设您要在用户的编辑视图中添加一些自定义表单验证。您有以下结构:app/views/users/edit.html.erb

edit.html.erb中,删除所有JS代码并删除脚本标记。代之以添加:

代码语言:javascript
复制
<%= javascript_pack_tag('user/edit') %>

打开app/javascript/packs文件夹。创建与编辑视图相同的文件夹结构,如:app/javascript/packs/product/edit.js

内部edit.js

代码语言:javascript
复制
window.onload = function () {
  // Your custom form validation JS code for users/edit
}

打开config/application.rb,在模块中:

代码语言:javascript
复制
config.assets.precompile += ['user/edit.js']
# Keep appending more assets as you wish.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57701418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档