流星:仅当角色 == 'webmaster' 时才显示文本

Meteor: Display text only if roles == 'webmaster'

我想根据在页面上迭代的用户显示信息。

我有以下模板:

<template name="allUsers">
  <div>
    {{#each user}}
      {{username}}<br/>
      <!-- This is where I need some guidance -->
      {{#if roles == 'webmaster}} <!-- What's the correct way to do this? -->
        This user is a webmaster
      {{/if}}
    {{/each}}
  </div>
</template>

我正在使用 alanning:roles 程序包,并且在服务器中我已经确保为用户发布角色字段。角色.[0] return 网站管理员现在和角色。[1] returns admin...但我知道在添加角色的过程中,它不会有 0 = webmaster 和 1 = admin 的标准密钥。

有没有办法只测试角色数组是否包含要在客户端上显示的 'webmaster'?

试试这个:

<template name="allUsers">
  <div>
    {{#each user}}
      {{username}}<br/>
      <!-- This is where I need some guidance -->
      {{#if roles.[1] == 'webmaster}} <!-- What's the correct way to do this? -->
        This user is a webmaster
      {{/if}}
    {{/each}}
  </div>
</template>

这里有一个全局模板助手可以帮助解决这个问题。

Template.registerHelper( 'isUserInRole', function( userId, role ) {
    return Roles.userIsInRole(userId, role);
});

<template name="allUsers">
  <div>
    {{#each user}}
      {{username}}
      {{#if isUserInRole _id 'webmaster'}}
        This user is a webmaster
      {{/if}}
    {{/each}}
  </div>
</template>

**根据第一条评论进行编辑。