【问题标题】:'Or' condition in Meteor.js template blocksMeteor.js 模板块中的“或”条件
【发布时间】:2015-01-10 21:07:54
【问题描述】:

有没有办法在 Meteor 模板中执行条件“和”或“或”?我想做的是这样的:

{{#if isInRole 'ADMIN' || isInRole 'INSPECTOR'}}
  ...do some stuff
{{/if}}

使用第 3 方软件包 alanning:roles 提供的帮助程序。这似乎在我使用 Meteor 的编码中多次出现,我可以并且已经解决了它,通常是通过复制块代码,但如果已经存在某种方法来处理 OR 或 AND 条件,那就太好了疯狂的旋转。

【问题讨论】:

    标签: meteor spacebars


    【解决方案1】:

    Meteor 使用基于车把的空格键。在车把中,现在有逻辑运算符的直接方式。

    您可以通过创建Template.helper 来处理or 的小变通方法

    Template.registerHelper("equals_or", function(param, arr) {
       arr = arr.split(",");
       if (arr.indexOf(param) !== -1) {
          return true;
       } 
       else {
         return false;
       }
    });
    

    然后在 HTML 中就可以了

    {{#if equals_or isRole "ADMIN,INSPECTOR"}}
      ...do some stuff
    {{else}}
       ...do some other stuff
    {{/if}}
    

    我可能不是一个完美的解决方案,但它正在发挥作用。

    也检查这个answer

    【讨论】:

    • 一个助手可以这样调用另一个助手吗? isInRole 是由alanning:roles 包创建的全局模板助手。对于这个特定实例,我的另一种选择是编写更多自己的isInAnyRoles,它接受一个数组而不是单个角色。或者也许我应该修改alanning:roles 并回馈社区。可能对每个人来说都是更好的解决方案。
    • @CodeChimp 你最后真的更新了 alanning:roles 吗?因为逗号分隔功能现已推出! alanning.github.io/meteor-roles/classes/UIHelpers.html
    猜你喜欢
    • 2012-06-25
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多