Одна из проблем с «доля кода в файлах с глобалов» метеора подхода заключается в том, что, когда вы смотрите на файл, в котором используется функция, вы не знаете, где определена функция. Я предпочитаю определять одну глобальную переменную в каждом файле, которая должна экспортировать переменные. Эта переменная имеет то же имя, что и файл, с начальным капиталом (или другим соглашением об именах, которое идентифицирует его как «объект экспорта»). Экспорт хранится как свойства этого объекта. Таким образом, вы можете создать файл с именем globalHelpers.js
:
GlobalHelpers = {};
GlobalHelpers.helper = function() {
// ...
};
И затем использовать его в других файлах с GlobalHelpers.helper()
. Если вы посмотрите на этот код позже, вы можете посмотреть в globalHelpers.js
, чтобы найти функцию helper
.
Если файл экспортирует один класс или коллекцию, тогда можно просто использовать этот объект в качестве объекта экспорта. Итак, вместо things.js
с Things = {}; Things.Things = new Mongo.Collection...
вы можете просто сделать Things = new Mongo.Collection...
.
Возможно, вам необходимо разместить файл в каталоге lib
, чтобы он загружался перед другими файлами.
Не регистрируйте его с помощью Template.registerHelper
, если вы не хотите называть его напрямую из шаблонов с помощью вызовов {{ }}
.
Не хотите просто зарегистрировать универсальный помощник с Template.registerHelper (имя, функция)? –