如果用户导航另一个页面或只是注销,我正在寻找一种方法来清除Angular 2的Kendo UI Grid。我已经尝试将观察结果清除到null
但它并不好,毕竟我无法填充数据。谁能建议我一个更好的方法?
您可以使用=Observable.empty()
或=Observable.from([])
将视图设置为空数组,但如果要获取数据,则需要再次重新绑定服务。这就是为什么最简单的方法是调用.next([])
然后在需要时获取数据。看到这个example
我根据我的目的改编了@ 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
};