如果用户导航另一个页面或只是注销,我正在寻找一种方法来清除Angular 2的Kendo UI Grid。我已经尝试将observable清除到null
但它并不好,毕竟我无法填充数据。谁能建议我一个更好的方法呢?
答案 0 :(得分:1)
您可以使用=Observable.empty()
或=Observable.from([])
将视图设置为空数组,但如果要获取数据,则需要再次重新绑定服务。这就是为什么最简单的方法是调用.next([])
,然后在需要时获取数据。见example
答案 1 :(得分:0)
我已调整@knikolov的答案以适合我的目的。由于我使用对象存储网格设置,因此.next([])
会向我发出类型警告,因此可以将其替换为.next(null)
。
此外,如果用户不再位于结果的第一页上,则还可以将网格的skip
属性设置为0
来重置分页。
gridReset(): void {
this.dataService.next(null); // clears grid data
this.gridSettings.Skip = 0; // resets paging
// ...
}
给出了网格:
<kendo-grid name="theGrid"
[data]="gridSettings.GridData | async"
[skip]="gridSettings.Skip"
[pageSize]="gridSettings.PageSize">
并声明设置对象变量:
public gridSettings: GridSettings = {
Skip: 0,
PageSize: 10,
GridData: this.dataService
};