我正在尝试采用 棘手 在我的铁轨应用中。

文档中提供的默认配置捕获所有JS文件,包括查看特定的JavaScript:

embed_assets: on

javascripts:
  workspace:
    - public/javascripts/vendor/jquery.js
    - public/javascripts/lib/*.js
    - public/javascripts/views/**/*.js
    - app/views/workspace/*.jst

stylesheets:
  common:
    - public/stylesheets/reset.css
    - public/stylesheets/widgets/*.css
  workspace:
    - public/stylesheets/pages/workspace.css
  empty:
    - public/stylesheets/pages/empty.css

让我们考虑一个情况,仅应在某些视图上执行特定的JavaScript:

$(function(){
  alert("View specific message here!");
}

如何避免这种效果?

问候,Alexey Zakharov

有帮助吗?

解决方案

我的偏爱是在函数中总结“特定于视图的javascript”。然后根据您实际加载的页面调用该功能。这样,您的所有JavaScript都可以被浏览器作为单个文件缓存,并且您可以执行所需的JS部分。

所以我会添加一个 <script> 标记到特定 html.erb 在页面加载上调用特定视图功能的模板。

希望有帮助...

其他提示

我正在挖掘它,以指出Jashkenas方法的替代方法,即仅将行为与特定标签链接在一起。

$(function() {
  $('#my-view-object').someBehaviour();
}

那么,捕获量是多少?主要区别在于,JS代码倾向于将某些对象(而不是页面)链接。如果您重新组织观点,则必须更改JS。另一个问题是,JS需要在页面的底部以最大程度地挤出浏览器。如果您将脚本条目放在您的视图中,那么很可能它们最终会遍布整个页面的HTML标记并放慢渲染。

br, - 何塞

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top