Meteor 模板 #if 块不评估多个选项

Meteor templates #if block does not evaluate multiple optiopns

我有一个 if 语句,它正在检查多个角色,如下所示:

{{#if isInRole 'User' 'Admin'}}
    {{> dashboard}}
{{/if}}

这个条件 if 块只检查第一个选项,不计算第二个选项。例如,当用户登录时,仪表板模板会正确呈现,但当管理员登录时,它不会呈现。是否有特定的方法来指定此 OR 条件?

如果您只是命名参数,这应该可以正常工作:

{{#if isInRole arg1='User' arg2='Admin'}}
  {{> dashboard}}
{{/if}}

您可能需要将您的辅助函数修改为可以处理像这样传入的参数的函数。这会起作用:

...
isInRole: function(args) {
  return _.some(args.hash);
},
...

请注意,实际参数名称无关紧要,只需提供即可。

其实在有多个选项的情况下也可以这样做:

{{#if isInRole 'User, Admin'}}
   {{> dashboard}}
{{/if}}