我在页面模板(Ionic 2)中使用 *ngFor 。
<div class="child" *ngFor="let child of sharedParams.children">
...
</div>
Run Code Online (Sandbox Code Playgroud)
在应用程序内部的某个地方,我会在检测到更改(添加、更新、删除)时更新 children 数组。我这样做是为该属性分配一个新数组:
export class SharedParams {
private _children: Child[];
constructor(children: Child[]){
this._children = children;
}
get children(){
return this._children;
}
set children(children: Child[]){
this._children = children;
}
}
Run Code Online (Sandbox Code Playgroud)
当在数组中添加或更新项目时,会触发 ngFor 并更新 DOM。然而,当一个项目被移除时,数组会改变,但 DOM 不会移除该项目的条目。
我还尝试使用“push”和“splice”手动修改数组而不是替换它。但行为保持名称。当一个项目被移除时,DOM 永远不会更新。
任何帮助将不胜感激。
就我而言,ChangeDetectorRef.detectChanges()成功了。当您从 Observable 更新模型时,例如 Http.get() 的响应,问题似乎就会出现。
使用NgZone.run()没有帮助,我之前尝试过。
| 归档时间: |
|
| 查看次数: |
5979 次 |
| 最近记录: |