我很难理解Meteor 1.3的逻辑。
对于我想要组合的应用,我在/client/main.js中:
import '../imports/startup/accounts-config.js';
import '../imports/ui/body.js';
import '../imports/ui/home.js';
import '../imports/ui/map.js';
import '../imports/ui/admin.js';
...
在/imports/ui/body.js中,我有(我使用流路由器,mainLayout是主要布局,其中所有其他模板都呈现):
...
Template.mainLayout.onCreated(function mainLayoutOnCreated() {
Meteor.subscribe('tasks');
Meteor.subscribe('categories');
});
...
然后我有以下功能:
Template.admin.helpers({
categories() {
return Categories.find({}, { sort: { createdAt: -1 } });
},
});
如果我将此功能放在/imports/ui/body.js中,我可以在名为“admin”的模板中调用“类别”。但是,当我把这个函数放在/imports/ui/admin.js中时,我在javascript控制台中得到了一个无用的异常:
模板助手中的例外:类别@ http://localho ...
如何移动声明此帮助程序的文件,同时仍包含在同一个“main”文件中,会导致抛出异常?
答案 0 :(得分:0)
您应该在admin.js
文件的顶部导入所需的模板和模板包。
import {
Template
} from 'meteor/templating';
import '.deep/admin.js';
Template.admin.helpers({
categories() {
return Categories.find({}, { sort: { createdAt: -1 } });
},
});