Meteor Template.registerHelper()在{{#if}}块内无效

0 meteor meteor-blaze meteor-helper

在Meteor中定义了3名全球助手,具体如下:

Template.registerHelper('activeTrips', function () {
    console.log("Global Active Trips");
    return Trips.find().count();
});

Template.registerHelper('isSuperUser', function () {
    console.log("Global isSuperUser");
    return Meteor.user().username === "superuser";
});

Template.registerHelpr('isAdminUser', function () {
    console.log("Global isAdmin");
    return Roles.userIsInRole(Meteor.user(), ['admin']);
});
Run Code Online (Sandbox Code Playgroud)

用作模板计数显示{{activeTrips}}显示正确计数!

但其他助手 - 返回正确或错误 - 似乎不适用于把手{{#if}}构造?

例如{{#if isAdminUser}} do admin stuff {{/ if}}永远不会工作,即使我强制函数返回true - 事实上,帮助程序永远不会根据我的控制台输出调用.

n4t*_*t4r 8

首先,我要确保您已在一个Javascript文件中定义了所有三个全局模板助手,该文件仅在客户端(位于"客户端"目录中)中加载.

其次,我会确保在加载使用这些模板助手的模板代码之前加载此Javascript文件(例如,确保带有全局模板助手的Javascript文件位于顶部的'lib'目录下 - 级别"客户端"目录,而模板代码位于另一个目录中的Javascript文件中,例如"模板",位于同一顶级"客户端"目录下.

第三,我会确保你Template.registerHelper在编写模板帮助程序代码的任何地方拼写正确(我注意到你在上面的代码示例中拼错了"registerHelper").

验证所有这些后,代码是否仍然无法正常工作?