Создание JavaScript-кода Rails СУХОЙ
У меня есть два файла, которые используют некоторый общий код javascript и rails gon gem.
Итак, для файла 1: 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
работать правильно.
- Как передать var c в качестве аргумента в общий файл из file 1 и file2, в общий код (давайте назовем его
file3.js
) - Я просто делаю что-то вроде
<%= javascript_include_tag "file3.js" %>
вfile2
и аналогично вfile1
получить доступ к общему коду?
В конце концов я хочу иметь file1.js
выглядеть как:
$(function () {
function otherMethods(){
}
})
а также file2.js.erb
выглядеть как
//other code
1 ответ
Rails использует звездочки для загрузки файлов JavaScript с основного application.js
файл. Если вы посмотрите на этот файл, вы увидите, как все файлы javascript загружаются require_tree .
, Вы можете скопировать эту технику в свой file3.js
вот так.
file3.js
//=require file1
//=require file2
// your code here...
В вашем первом примере функция a()
не будет доступен во всем мире без добавления его в window
,
file1.js
window.a = a;