流星 Template.registerHelper() 在 {{#if}} 块内不工作

Meteor Template.registerHelper() not working within {{#if}} block

在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']);
});

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

但是其他助手 - return 对或错 - 似乎无法使用车把 {{#if}} 构造?

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

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

其次,我会确保在加载使用这些模板助手的模板代码之前加载此 Javascript 文件(例如,确保 Javascript 文件包含全局模板helpers 位于顶级 'client' 目录下的 'lib' 目录中,而模板代码位于另一个目录中的 Javascript 文件中,例如 'templates',在相同的顶级 'client' 目录)。

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

在验证了所有这些之后,代码是否仍无法按预期运行?