使用trackBy时更新子组件

时间:2018-06-12 05:14:13

标签: javascript angular angular2-template

我有一个项目列表,我将交错动画应用到。我使用trackBy,以便在我对项目进行更新时不会重复输入动画(例如更改名称/书签)。

我可以更新名称并显示更改,但是当我更新标记为'状态 - 我看不出变化。该项目更新,但它没有呈现。

我简化了模板代码:

list.html:

<div class="list" *ngIf="projects" @list>
  <div *ngFor="let item of itemList; trackBy: trackByFn" [@items]="itemList.length">
    <list-item [item]="item" (bookmark)="onBookmark($event)"></list-item>
  </div>
</div>

list-item.html:

<div class="item">

  <div class="bookmark" (click)="emitBookmark()">
    // this doesn't change
    <i class="fa-bookmark" [ngClass]="item.metadata.bookmarked ? 'fas' : 'far'"></i>
  </div>

  // this updates, no problem
  <div class="name">{{ item.name }}</div>

</div>

我一直在寻找年龄,似乎无法找到解决方案。 ChangeDetection策略似乎没什么帮助。

0 个答案:

没有答案