2016-08-28 1 views
0

У меня есть приложение Rails, использующее Asset Pipeline. Существует много js-файлов, связанных с различными частями приложения. Чтобы сохранить его DRY, я хочу начать вытягивать часть повторяющегося кода в файл и использовать эти методы во всем приложении. То, что я пытаюсь сейчас, не работает.Сохраняйте общие функции js в файле, который будет использоваться во всем приложении

common.js.coffee

common = 
    some_commonly_used_method: -> 
    // code 

Some_other_page_speciific_file.js.coffee

common.some_commonly_used_method() 

браузер консоли, когда я загрузить страницу

Uncaught ReferenceError: common is not defined

Что мне нужно сделать, чтобы иметь common.whatever доступны во всем приложении?

+0

Вы создали приложение для страницы конкретных активов? По умолчанию любая функция JS/Coffee, которую вы определяете, уже доступна для всех страниц, независимо от файла, в котором вы его определили. – MarsAtomic

+0

Я не установил приложение. Я пришел примерно через 2 года. Честно говоря, я не уверен, как можно настроить его на конкретную страницу или нет, но похоже, что все работает. к вашему заявлению, независимо от того, какие методы, похоже, не могут быть доступны во всем мире. – isea

ответ

0

Помещение его в объект окна оказалось моим решением. Я не уверен, что он идеален, но он работает.

common.js.coffee

window.common = 
    some_commonly_used_method: -> 
    // code 

Some_other_page_speciific_file.js.coffee

window.common.some_commonly_used_method() 
Смежные вопросы