为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

神不在的星期二 2019-08-09 14:25:13
在Rails 3应用程序中添加特定于页面的JavaScript的最佳方法?Rails 3有一些不引人注目的JavaScript,非常酷。但我想知道最好的方法是为特定页面添加额外的JavaScript。例如,我之前可能做过的事情:<%= f.radio_button :rating, 'positive', :onclick => "$('some_div').show();" %>我们现在可以用类似的东西使它不引人注目<%= f.radio_button :rating, 'positive' %># then in some other file$('user_rating_positive').click(function() {   $('some_div').show();}所以我想我的问题是在哪里/如何包含JavaScript?我不想填写该application.js文件,因为此JavaScript仅适用于此视图。我应该以某种方式为每个页面包含一个自定义JavaScript文件,还是将其粘贴在标题所查找的实例变量中?
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

如果你想在一个页面上包含javascript,你当然可以在页面上包含它,但是如果你想对你的javascript进行分组并利用资产管道,缩小的js等,它可以这样做并且有额外的通过将js分成仅适用于站点的某些控制器/视图/部分的组,组合并仅加载到特定页面上的js资产。

将资产中的js移动到文件夹中,每个文件夹都有一个单独的清单文件,因此,如果您有一个仅在后端使用的admin js库,则可以执行以下操作:

  • 资产

    • 管理

    • admin.js(管理员组的清单)

    • application.js(app全局组的清单)

    • 全球

    • JS ...

    • JS ...

    • JavaScript的

在现有的application.js中

//= require jquery//= require jquery_ujs//= require_tree ./global // requires all js files in global folder

在新的admin.js清单文件中

//= require_tree ./admin // requires all js files in admin folder

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

config.assets.precompile += %w( admin.js )

然后调整页面布局,以便为页面头部添加一些额外的j:

<%= content_for :header %>

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

<% content_for :header do %>
  <%= javascript_include_tag 'admin' %>  <% end %>

您当然可以使用css执行相同的操作,并以类似的方式将其分组以仅应用于站点的某些区域。


查看完整回答
反对 回复 2019-08-09
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我更喜欢以下......

在您的application_helper.rb文件中

def include_javascript (file)
    s = " <script type=\"text/javascript\">" + render(:file => file) + "</script>"
    content_for(:head, raw(s))end

然后在您的特定视图中(此示例中为app / views / books / index.html.erb)

<% include_javascript 'books/index.js' %>

......似乎对我有用。


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 531 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信