Angular ngmodelbind-won';不能在多个复选框上工作

Angular ngmodelbind-won';不能在多个复选框上工作,angular,angular2-forms,Angular,Angular2 Forms,我有这样的数据 [{value: 6, name: "delete-wews", checked: false} {value: 5, name: "update-user", checked: false} {value: 4, name: "search-user", checked: true} {value: 3, name: "list-user", checked: false} {value: 2, name: "find-user", checked: false} {value

我有这样的数据

[{value: 6, name: "delete-wews", checked: false}
{value: 5, name: "update-user", checked: false}
{value: 4, name: "search-user", checked: true}
{value: 3, name: "list-user", checked: false}
{value: 2, name: "find-user", checked: false}
{value: 1, name: "create-user", checked: true}]
现在在我的模板中,它看起来是这样的,但当它显示在浏览器上时,它会选中所有复选框,即使其值为false。它应该检查“checked”键是否为true,否则它应该为false

<div class="checkbox" *ngFor="let permission of permissions">
      <label>
         <input type="checkbox"
            name="permissions"
            [(ngModel)]="permission.checked"
            value="{{permission.id}}">
            {{permission.name}}
     </label>
</div>

{{permission.name}
我的控制器代码是
这是因为您使用ngFor在该数组上迭代,并且为每个项目设置相同的name属性。它们需要每个都是唯一的,以持有不同的价值观。试试这个,它将使名称permissions0、permissions1、permissions2等

<div class="checkbox" *ngFor="let permission of permissions; let i = index">
  <label>
     <input type="checkbox"
        [name]="'permissions'+i"
        [(ngModel)]="permission.checked"
        value="{{permission.id}}">
        {{permission.name}}
 </label>

{{permission.name}

一个常见的错误是,无线电输入都需要相同的名称,但不需要复选框。此外,如果您试图通过bing访问特定对象以获取复选框:权限[i]。请选中最后一项。。。始终使用[value]=“permission.id”这将保留字符串、int或boolean等的类型。您不需要在“pernision”之后添加索引,因为“let permission of permissions”语法在数组的每次迭代中将“permission”声明为临时模板变量。类似于在ES6 javascript中执行相同的操作。对于(让数组项){console.log(item);}每次都显示不同的项,不需要索引。但是,末尾带有s的权限不是这样声明的,因此每次迭代都是静态的。它们需要索引作为使复选框名称唯一的方法。仅此而已在真正的“权限”数组中是否有id密钥?您正在将值设置为“不存在”键。请勿在问题中输入答案。把答案放在答案中。