我在 Angular 4 或 PrimNG Datatables 模块中检测到了一个错误。
我有一个简单的看法:
<span *ngFor="let node of nodes">{{node.label}}</span> //works with case 1,2,3 and 4
<p-dataTable [value]="nodes"> //works with case 1, 2, and 3 (but not with 4!)
<p-column field="label" header="Label"></p-column>
</p-dataTable>
和组件中的代码:
private nodes:any[] = []
ngOnChanges() {
//case 1 -> ok
//this.nodes.push({label: 'foo'})
//case 2 -> ok
//this.nodes = [{label: 'foo'}]
this.someService.getAll().subscribe(
records => {
//case 3 ->ok
//this.nodes = [{label: 'foo'}]
//case 4 -> BUG
//this.nodes.push({label: 'foo'}) //datatable is not updated
}
)
}
当我使用未注释的案例 1、2 或 3 运行此代码时,一切正常,但是当我尝试运行案例 4(与案例 1 相同但在服务解析之后)时 - prim ng 数据表似乎没有看到变化。在 Angular 2 中我没有这样的问题。你能解释一下这里发生了什么吗?:)
问候