Угловой трек, не работающий во вложенном * ngFor - PullRequest
0 голосов
/ 16 октября 2018

Мой компонент похож на

<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 или добавляю в него новый элемент, он обновляет порядок обновления / добавления набора данных.

Я просмотрел различные сообщения, но пока не нашел что-то полезное.Я делаю что-то неправильно здесь?Любая помощь будет оценена.

1 Ответ

0 голосов
/ 16 октября 2018

Неправильная реализация для trackByFn.

trackBy function всегда принимает два параметра index и текущий item, и функция должна возвращать уникальный идентификатор.

Так что ваш function должен быть как -

public trackByFn(index, userpermission) {
    return userpermission.id; //check what unique property you have in permission class.
  }
...