我的组件有点像
<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数组或向其中添加新元素时,它正在更新要更新/添加的数据集的顺序。
我已经看过很多文章,但是还没有找到有用的东西。 我在这里做错什么吗?任何帮助将不胜感激。
答案 0 :(得分:1)
trackByFn
的实现错误。
trackBy
function
始终接受两个参数index
和当前参数item
,并且函数必须返回唯一标识符。
所以您的function
应该像-
public trackByFn(index, userpermission) {
return userpermission.id; //check what unique property you have in permission class.
}