使Rails javascript代码干燥
我有两个文件使用一些常见的javascript代码和rails 因此,对于文件1:使Rails javascript代码干燥,javascript,ruby-on-rails,dry,gon,Javascript,Ruby On Rails,Dry,Gon,我有两个文件使用一些常见的javascript代码和rails 因此,对于文件1:file1.js如下所示 $(function () { function a() { .... } $('id').on('click', function() { c = gon.obj1 c.doSomething .... }) function otherMethods(){ } }) 对于文件2:fil
file1.js
如下所示
$(function () {
function a() {
....
}
$('id').on('click', function() {
c = gon.obj1
c.doSomething
....
})
function otherMethods(){
}
})
对于文件2:file2.js.erb
var c = abc
function a() {
....
}
$('id').on('click', function() {
c.doSomething
....
})
//other code
现在我正在考虑通过提取file3.js
中的公共代码来干燥代码:
function a() {
....
}
$('id').on('click', function() {
c.doSomething
....
})
由于我不熟悉javascript,我不确定如何填充c,使file1.js
和file2.js.erb
都能正常工作
file3.js
)file2
中执行类似于
的操作,以及在file1
中执行类似操作即可访问公共代码file1.js
看起来像:
$(function () {
function otherMethods(){
}
})
和file2.js.erb
看起来像
//other code
Rails使用链轮从主
application.js
文件加载javascript文件。如果您查看该文件,您会注意到所有javascript文件是如何使用require\u树加载的。
。您可以像这样在文件3.js中复制此技术
file3.js
//=require file1
//=require file2
// your code here...
window.a = a;
在第一个示例中,如果不将函数a()
添加到窗口
,该函数将无法全局使用
file1.js
//=require file1
//=require file2
// your code here...
window.a = a;
但是我如何从file1和file2向file3发送不同的c值呢?同时检查我更新的问题,以便我能更清楚