在Angular 7中仅刷新ngFor的一项

时间:2019-07-15 07:52:51

标签: angular

我有一个包含多个对象的数组,如下所示。

this.list = [
 {
  "image": "imageurl1",
  "name": "itemname1"
 },
 {
  "image": "imageurl2",
  "name": "itemname2"
 },
 {
  "image": "imageurl",
  "name": "itemname3"
 }
]

上面的列表只是一个示例数组,不是真实的数组。下面是应用程序文件夹,它是我应用folderList数组迭代整个列表的另一个组件。

<app-folder *ngFor="let folder of documentsData.folderList" [documentsData]="documentsData" [folderData] = "folder"
                [folderList]="documentsData.folderList" (processAction) = "refreshFolders($event)"></app-folder>

在角材卡中显示数据。在这里,我试图通过调用api来更改任何项目的名称(这是更新db)。一旦进行了此类更改并更新了list变量,整个列表就会在前端闪烁。

功能正常,但是我不希望整个list闪烁,而是只希望特定的项目反映更改或闪烁。

如何仅更新一次已更改的项目并更新* ngFor以反映这一点。有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

您将仅需追加或修改列表中的给定条目。否则,如果您执行类似的操作

dispose

Anguar检测到集合已更改(不是集合元素),因此重新创建了整个集合表示形式。

如果仅更新单个条目,则不会发生。除此之外,还有其他几种原因可能导致这种情况,但是您必须共享代码以检测到