Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor:迭代用户角色以显示复选框_Javascript_Meteor - Fatal编程技术网

Javascript Meteor:迭代用户角色以显示复选框

Javascript Meteor:迭代用户角色以显示复选框,javascript,meteor,Javascript,Meteor,使用此模板,我将显示存储在用户集合中的所有结果: <template name="user"> {{#each users.roles}} <input type="checkbox" data-role="{{this}}">{{this}} {{/each}} </template> 现在,我考虑迭代角色中的所有元素,并检查角色是否存在(=选中)或不存在(=未选中)。元素的值用于显示复选框的标签 1) 这是正确的方法吗 2

使用此模板,我将显示存储在用户集合中的所有结果:

<template name="user">
    {{#each users.roles}}
        <input type="checkbox" data-role="{{this}}">{{this}}
    {{/each}}
</template>
现在,我考虑迭代
角色中的所有元素,并检查角色是否存在(=选中)或不存在(=未选中)。元素的值用于显示复选框的标签

1) 这是正确的方法吗


2) 如何将助手
var角色连接到模板以进行检查

你基本上在正确的轨道上!您的助手需要返回对象数组而不是对象。然后您需要一个助手,它根据角色是否在用户的角色数组中返回布尔值。例如:

js:

html:


{{{#每个角色}
{{this.name}}
{{/每个}}
<input type="checkbox" data-role="admin"> Administrator
<input type="checkbox" data-role="editor"> Editor
<input type="checkbox" data-role="user_manage"> Manage users
Template.user.helpers({
    var roles = {admin: 'Administrator', editor: 'Editor', user_manage: 'Manage users'};
    return roles;
});
Template.user.helpers({
  roles: function(){
    return [
      { label: 'admin', name: 'Administrator'},
      { label: 'editor', name: 'Editor'},
      { label: 'user_manage', name: 'Manage users'}
    ];
  },
  hasRole: function(role){
    return Meteor.user().roles.indexOf(role)>-1; //assuming user.roles is just an array
  }
});
<template name="user">
  {{#each roles}}
    <input type="checkbox" data-role="{{this.label}}"
    {{#if hasRole this.label}}checked{{/if}}>{{this.name}}
  {{/each}}
</template>