流星-显示收集与条件

Meteor - display collection with conditions

本文关键字:条件 显示 流星      更新时间:2023-09-26

我有一个基于用户的Meteor应用程序,其中包含一个表示组的集合。

一个组是这样的:

{ name: groupname, members: [memberuseridlist], owner: owneruserid}

我有一个这些组的模板,看起来像这样:

{{#each groups}}
    <li>{{name}}
        -
        <button class="join">+</button>
        <button class="leave">-</button>
        <button class="delete">x</button>
    </li>
{{/each}}  

但是我想确保只显示相关的按钮,例如:

 {{#each groups}}
    <li>{{name}}
        -
        {{#unless ismember}}<button class="join">+</button>{{/unless}}
        {{#if ismember}}<button class="leave">-</button>{{/if}}
        {{#if isowner}}<button class="delete">x</button>{{/if}}
    </li>
{{/each}}  

我有一组模板辅助方法,但我不明白如何将实际组传递到函数中,以便我可以计算每个组的ismember和isowner。

{{#each groups}}中的上下文是一个组文档。因此,在您的助手中,您可以使用this表示一个组。试试这样做:

Template.myTemplate.helpers({
  ismember: function() {
    return _.contains(this.memberuseridlist, Meteor.userId());
  },
  isowner: function() {
    return this.owner === Meteor.userId();
  }
});

如果您希望使这些帮助程序在您的模板之间更易于移植,请参阅我关于模型的文章。