我有一个项目列表,我将交错动画应用到。我使用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策略似乎没什么帮助。