如何在其他ngFor中访问ngFor变量?

时间:2018-02-06 06:14:15

标签: angular ecmascript-6

以下代码将用于显示用户的详细信息。截至目前,我们只有一个用户和三个权限。数组定义如下:

1) Users  = [{'FirstName':'John','permission':['masters','transactions']}] 
2) permissions = ['masters','transactions','settings']

第一个for循环迭代用户,第二个是权限。 逻辑是,如果权限的权限存在于用户权限中,则将该复选框标记为true。

<div  *ngFor="let user of users">  

  <label> user.FirstName </label>

  <ol>
    <li *ngFor="let permission in permissions">
      <input type="checkbox" checked="user.permission.indexOf(permission)"
    </li>
  </ol>

</div>

但它说

  

无法阅读财产&#39;权限&#39;未定义的

如何在嵌套的?

中访问变量

1 个答案:

答案 0 :(得分:3)

由于permissions是数组,您应该使用of而不是in,没有像in这样的最新角度版本:

更改:

<li *ngFor="let permission in permissions">

<li *ngFor="let permission of permissions">

您的代码应如下所示:

<div  *ngFor="let user of Users">  
  <label> {{ user.FirstName }} </label>
  <ol>
    <li *ngFor="let permission of permissions">
      {{ permission }}
      <input type="checkbox" [checked]="user.permission.indexOf(permission)> -1 ? true : false">
    </li>
  </ol>
</div>

WORKING DEMO