ObservableArray项目更改时重新呈现Nativescript ListView

时间:2017-10-11 15:46:07

标签: nativescript angular2-nativescript nativescript-angular

这就是我在视图中呈现cases ObservableArray的方式

<ListView [items]="cases" class="list-group" *ngIf="cases">
    <ng-template let-case="item">

cases有这些值:

cases = [{id: 1, name: "Sam"}, {id: 2, name: "Romio"}]

当我像这样更新第一个项目时,如何让我的ListView重新渲染或以某种方式更新视图?

cases[0]["name"] = "Michael"

2 个答案:

答案 0 :(得分:3)

您是否尝试在NgZone中应用更改?我用它来更新数组(不是ObservableArray),相应的RadListView自动更新。

this.ngZone.run(() => {

        this.dummyService.addFile(this.file).subscribe(
            (fileId) => {
                this.folder.push(this.file);
        },
        (error) => {
           this handleError(error);
        });
     });

答案 1 :(得分:0)

你想在这里强制执行不变性。所以,如果你必须改变数组中的第一个对象,我会。之后我会尝试使用点差运算符。

cases[0]["name"] = "Michael"
cases = [...cases];

这会将cases设置为应该更新列表的数组的新实例。