Помощники шаблонов в пакете Telescope при использовании Telescope.modules.add
Мне удалось вставить этот шаблон под названием lightBox с помощью Telescope.modules.add. Кажется, что структура файла работает нормально, за исключением того, что я не могу сделать помощник шаблона для взаимодействия с шаблоном, который вставлен с использованием функции Telescope.modules.add. Следующий код создает ошибку на стороне клиента "Uncaught TypeError: Невозможно прочитать свойство 'helpers' of undefined". Без этого вспомогательного метода шаблон видим и существует в представлении браузера.
lightBox.js
if (Meteor.isClient) {
Telescope.modules.add("top", {
template: "lightBox",
order: 0
});
Template.layout.events({
'click .post-content': function (e) {
Session.set('lightBoxPageViewCounter', 1 );
}
});
Template.lightBox.helpers({
lightBoxOn: function() {
return true;
}
});
}
Package.js
Package.describe({
name: "admithub:admithub-lightbox",
summary: "popup lightbox for admit hub forum to college email leads",
version: "0.0.1"
});
Package.onUse(function(api) {
api.use([
'accounts-base',
'stylus',
'telescope:core@0.24.0',
'aldeed:simple-schema',
'aldeed:collection2',
'aldeed:autoform'
]);
api.addFiles('lib/client/lightBox.js', 'client');
api.addFiles('lib/client/lightbox.html', 'client');
api.addFiles('lib/client/lightbox.styl', 'client');
});
Шаблон называется lightBox и существует в том же пакете в том же каталоге. Я работал над этим, используя глобальные вспомогательные методы, но это неэффективное решение.
1 ответ
Ваш порядок загрузки пакетов неправильный, вы должны загрузить объявление шаблона (html) до объявления помощников шаблона (js), вам просто нужно поменять местами api.addFiles
звонки.
api.addFiles('lib/client/lightbox.html', 'client');
api.addFiles('lib/client/lightBox.js', 'client');