Angular 网格数据在剑道中不刷新,用于角度

Angular 网格数据在剑道中不刷新,用于角度,angular,kendo-ui,kendo-grid,kendo-ui-angular2,Angular,Kendo Ui,Kendo Grid,Kendo Ui Angular2,我有一个角度网格的剑道,它使用kendoGridBinding指令绑定内存中的数据 我需要做的是操作数据模型,并在网格中反映每个插入/更新/删除 例如,在plunk中有一个按钮,如果单击它,它将从dataGrid第一行中删除,但该更改不会反映在网格中。我在文档中找到了一条语句,但是它不起作用(正如您在plunk中看到的)。如何使网格刷新数据 @Component({ selector: 'my-app', template: ` <kendo-grid #g

我有一个角度网格的剑道,它使用
kendoGridBinding
指令绑定内存中的数据

我需要做的是操作数据模型,并在网格中反映每个插入/更新/删除

例如,在plunk中有一个按钮,如果单击它,它将从
dataGrid
第一行中删除,但该更改不会反映在网格中。我在文档中找到了一条语句,但是它不起作用(正如您在plunk中看到的)。如何使网格刷新数据

@Component({
    selector: 'my-app',
    template: `
        <kendo-grid #grid
            [kendoGridBinding]="gridData"
            [pageSize]="4"
            [pageable]="true">
            <kendo-grid-column field="CompanyName" [width]="140"></kendo-grid-column>
            <kendo-grid-column field="ContactName" [width]="120"></kendo-grid-column>
            <kendo-grid-column field="City" [width]="100"></kendo-grid-column>
            <kendo-grid-column field="ContactTitle" [width]="130"></kendo-grid-column>
        </kendo-grid>
        <button (click)="delFirst()">delete first row</button>
    `
})
export class AppComponent {

    @ViewChild('grid') grid: GridBinding;

    public gridData: any[] = customers;

    delFirst() {
      this.gridData.splice(0,1);
      this.grid.notifyDataChange();
      alert("First row deleted");
    }

}
@组件({
选择器:“我的应用程序”,
模板:`
删除第一行
`
})
导出类AppComponent{
@ViewChild(“网格”)网格:GridBinding;
公共网格数据:任意[]=客户;
德尔菲斯特(){
这个.gridData.splice(0,1);
this.grid.notifyDataChange();
警报(“删除第一行”);
}
}

您没有将数据分配回网格,请将其更改为

delFirst() {
      this.gridData = this.gridData.slice(1);
 }

如果需要更新绑定指令,则应设置一个新实例:

delFirst() {
    this.gridData.splice(0,1);
    this.gridData = this.gridData.slice(0);
}

否则,angular将不会检测到更改,也不会更新指令

delFirst() {
    this.gridData = this.gridData.slice(1);
}