首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Rails 3应用程序中添加页面特定JavaScript的最佳方法是什么?

在Rails 3应用程序中添加页面特定JavaScript的最佳方法是什么?
EN

Stack Overflow用户
提问于 2018-01-05 01:21:53
回答 2查看 0关注 0票数 0

我想知道如何为特定页面添加其他JavaScript的最好办法是什么?

如,:

代码语言:javascript
复制
<%= f.radio_button :rating, 'positive', :onclick => "$('some_div').show();" %>

使用下面代码

代码语言:javascript
复制
<%= f.radio_button :rating, 'positive' %>

# then in some other file
$('user_rating_positive').click(function() {
  $('some_div').show();
}

所以我想我的问题是在哪里/如何包含该JavaScript?我不想填写这个application.js文件,因为这个JavaScript只适用于这个视图。我应该为每个页面包含一个自定义的JavaScript文件,或者将其保存在头文件的实例变量中?

EN

回答 2

Stack Overflow用户

发布于 2018-01-05 10:02:21

将每个视图的Javascript包含在content_for :head阻止然后yield应用程序布局中的块。

例如

那么:

代码语言:javascript
复制
<% content_for :head do %>
  <script type="text/javascript">
    $(function() {
      $('user_rating_positve').click(function() {
        $('some_div').show();
      }
    });
  </script>
<% end %>

或者,如果时间更长,则:

代码语言:javascript
复制
<% content_for :head do %>
  <script type="text/javascript">
    <%= render :partial => "my_view_javascript"
  </script>
<% end %>

然后,在布局文件中

代码语言:javascript
复制
<head>
  ...
  <%= yield :head %>
</head>
票数 0
EN

Stack Overflow用户

发布于 2018-01-05 10:51:06

可以这样做:

assets

  • javascripts
    • admin
      • ...js
    • admin.js (manifest for admin group)
    • application.js (manifest for app global group)
    • global
      • ...js

在现有的application.js中

代码语言:javascript
复制
//= require jquery
//= require jquery_ujs
//= require_tree ./global // requires all js files in global folder

在一个新的admin.js清单文件中

代码语言:javascript
复制
//= require_tree ./admin // requires all js files in admin folder

确保通过编辑config / production.rb来加载这个新的js清单

代码语言:javascript
复制
config.assets.precompile += %w( admin.js )

然后调整您的页面布局,以便您可以包含页头的一些额外的js:

代码语言:javascript
复制
<%= content_for :header %>   

然后在你想要包含这个特定的js组(以及正常的应用程序组)和/或任何特定于页面的js,css等的视图中:

代码语言:javascript
复制
<% content_for :header do %>
  <%= javascript_include_tag 'admin' %>  
<% end %>

你当然可以用css做同样的事情,并以类似的方式将它分组,只应用于网站的某些区域。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001328

复制
相关文章

相似问题

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