ng删除项目时不更新

时间:2016-05-25 12:35:33

标签: angular ionic2

我在页面模板(Ionic 2)中使用* ngFor。

usersRef = rootRef.childByAppendingPath("users")
thisUserRef = usersRef.childByAppendingPath(the users uid)
thisUserPostRef = thisUserRef.childByAutoId //create a new post node
thisUserPostRef.setValue("here's a new post") //store the post in it

在应用程序内部的某处,我会在检测到更改(添加,更新,删除)时更新子数组。我这样做是为属性分配一个新数组:

<div class="child" *ngFor="let child of sharedParams.children">
        ...
</div>

在数组中添加或更新项目时,会触发ngFor并更新DOM。但是,删除项目时,数组会更改,但DOM不会删除该项目的条目。

我还尝试使用'push'和'splice'手动修改数组而不是替换它。但这种行为仍然是名字。删除项目时,DOM永远不会更新。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您可以使用ChangeDetectorRef每0.5秒或更长时间检查并更新一次列表...

例如:

constructor(private ref: ChangeDetectorRef) {
    console.log('Hello PhotoComponent Component');  
    setInterval(() => {
      this.ref.detectChanges();
    }, 500);  
  }

答案 1 :(得分:0)

在我的情况下ChangeDetectorRef.detectChanges()完成了这个伎俩。当您从Observable更新模型时,似乎会出现问题,例如Http.get()的响应。

使用NgZone.run()没有帮助,我之前尝试过。