3

我的组件有点像

<div class="users-list" *ngIf="datasetPermission !== undefined">
    <div *ngFor="let userpermission of datasetPermission; trackBy : trackByFn">
      <span *ngFor="let user of userpermission.users">
        <span *ngIf="user">
        <span class="shared-user"><span>{{user.emailId}}</span><span ><span  class="close icon-key" style=" padding: 0;" (click)="viewPermission($event,userpermission.permissionType,user)"></span><span class="close" style=" padding: 0;" (click)="removeUser(user)">×</span></span></span>
      </span>
      </span>
    </div>
  </div>

trackBy 函数为

    public trackByFn(index, userpermission) {
      console.log(userpermission.permissionType);
      return userpermission.permissionType;
    }

内部权限我有一组分配给此权限的用户。我可以从 x <> y 权限集中更新用户。当我更新 datasetPermission 数组或向其中添加新元素时,它正在更新更新/添加的数据集的顺序。

我浏览了各种帖子,但还没有找到有用的东西。我在这里做错了什么吗?任何帮助,将不胜感激。

4

1 回答 1

2

有错误的实现trackByFn

trackBy function始终接受两个参数index,并且 currentitem和 function 必须返回唯一标识符。

所以你function应该像 -

public trackByFn(index, userpermission) {
    return userpermission.id; //check what unique property you have in permission class.
  }
于 2018-10-16T09:57:59.537 回答