我已经能够使用Telescope.modules.add插入名为lightBox的模板 文件结构似乎工作正常,除了我不能使模板助手与使用Telescope.modules.add函数插入的模板进行交互。以下代码产生客户端错误" Uncaught TypeError:无法读取属性' helpers'未定义"。如果没有此辅助方法,则模板可见,并且确实存在于浏览器视图中。
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,存在于同一目录下的同一个包中。我通过使用全局辅助方法解决了这个问题,但这是一个低效的修复方法。
答案 0 :(得分:1)
您的包加载顺序错误,您必须在模板助手声明(js)之前加载模板声明(html),您只需要交换api.addFiles
次来电。
api.addFiles('lib/client/lightbox.html', 'client');
api.addFiles('lib/client/lightBox.js', 'client');