流星1.3并包括:在哪里声明你的助手?

时间:2016-06-07 15:35:01

标签: javascript mongodb meteor meteor-blaze

我很难理解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”文件中,会导致抛出异常?

1 个答案:

答案 0 :(得分:0)

您应该在admin.js文件的顶部导入所需的模板和模板包。

import {
  Template
} from 'meteor/templating';

import '.deep/admin.js';

Template.admin.helpers({
  categories() {
    return Categories.find({}, { sort: { createdAt: -1 } });
  },
});