如何命名我们的JS以与Rails资产管道一起使用

我理解rails 3.1资产管道背后的原因:我们在一个整洁,可缓存的文件中编译所有JS以提高性能。 我们想要的很棒。

但是,加载所有内容也意味着我们必须非常小心我们不要在多个页面上使用某个ID或类,如果我们附加了一些JS。 否则,JS将在两个页面上触发,因为它总是被加载。

现在,我们想要实现的目标如下:
*我们希望将所有内容保存在一个JS文件中(我们知道如何单独加载文件,只是不希望这样)
*我们希望在每个controller_name.js命名JS,因此只有在初始化相应的命名空间时才会加载它
*我们想要通过从布局的标签上的数据属性中读取当前控制器来初始化相应的命名空间

问题是:我们不知道如何在JS中实现。 特别是,我们应该如何命名JS,然后根据HTML标记的内容动态初始化它。

任何帮助是极大的赞赏!

这是一种在控制器/操作级别命名所有内容的方法

你基本上是这样声明你的身体

  

然后调用这些方法(每个方法都有一系列方法 – 所以如果你在每个页面都需要一些东西,那就是普通的/ init。或者在所有用户的操作上,那是在用户/ init上。或者只有用户显示页面?那是用户/节目。

 SITENAME.common.init(); SITENAME.users.init(); SITENAME.users.show(); 

我用过这个,效果非常好。

 JsSpace.on('users', { index: function(){ console.log('index action of users controller'); } }); 

该模式由渲染控制器和动作实现到body属性,然后获取它们并执行匹配函数。 JS-命名空间轨道