Meteor Template.registerHelp()在{{#if}}块内不工作



在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}}正确显示计数!

但是其他返回True或False的助手似乎不适用于手把{{#if}}构造?

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

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

第二,我会确保在加载使用这些模板助手的模板代码之前加载这个Javascript文件(例如,请确保带有全局模板助手的Javascript文件位于顶级"client"目录下的"lib"目录中,而模板代码位于同一顶级"client"目录下另一个目录(如"templates")中的Javascript文件中)。

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

在验证了所有这些之后,代码是否仍然不能按预期工作?

最新更新