Rails 中每个 View 的 JavaScript 文件

标签 javascript ruby-on-rails ruby

根据“不显眼的 JavaScript”的建议,我想将我的 JavaScript 逻辑分成
单独的文件。但是我不知道如何组织它们。

我应该:

  1. 只需将所有应用程序 javascript 放入 Application.js 文件并使用布局页面加载它?这是一种简单的方法,但我最终会得到一个臃肿的 Application.js。有些用户可能只想访问几个页面,但整个文件都会预加载,这并不好。
  2. 或者我应该为每个 View 创建一个单独的 javaScript 文件并独立加载它们吗?这会产生一组问题。如何将每个js文件链接到对应的 View ?
    谢谢。

最佳答案

每次加载application.js中的主要JavaScript。现在为不同的需要创建文件。创建一个 form.js 文件,一个 myfancypart.js 文件等。不要在 application.html.erb 布局中加载它们。在需要时动态加载它们:

应用程序.html.erb:

<%= javascript_include_tag "application" %>
<%= yield :javascript_includes %>

你的 view.html.erb 的顶部:

<% content_for :javascript_includes do %>
  <%= javascript_include_tag "forms.js" %>
<% end %>

content_for block 中的所有内容都将在 yield :javascript_includes 时加载。

关于Rails 中每个 View 的 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602147/

相关文章:

javascript - 使用 Ajax 响应中的变量

javascript - 存储分步指南的数据结构

javascript - 如何通过订阅组件内的变量来存储可观察值 - Angular4

ruby-on-rails - <% if current_user.id == @status.user_id %> 当用户未登录时

ruby-on-rails - 防止 rake migrate 创建外键约束

php - Facebook 登录(JavaScript)突然停止工作

ruby-on-rails - Ruby 1.8.7 对比 Ruby 1.9+ 性能

ruby-on-rails - rails : How to increment an integer field of selected instances of a model?

ruby - 在生成 gem 时,在 gemspec 中签名 Ruby gem : Would s. signing_key 是否被删除?

ruby - 使用正则表达式从字符串模式中检索数字