我在Angular中加载网格的已保存状态时遇到一些问题。
这是网格HTML:
<div id="grid" kendo-grid k-options="GridOptions" k-ng-delay="GridOptions"></div>
稍后我开始调用Http并填写$ scope.GridOptions,网格工作正常。
然后我以这种方式保存网格的状态:
$scope.GridOptionsBackup = kendo.stringify($scope.GridOptions);
这在我在控制台中打印输出时工作正常。它看起来像这样:
{ “数据源”:{ “模式”:{ “数据”: “数据”}, “运输”:{}, “serverSorting”:真, “表”:NULL, “字段”:[{“编码“:true,”field“:”WidgetName“,”title“:”Name“,”template“:”#:data.WidgetName#“},{”encoded“:true,”field“:”WidgetDescription“,” title“:”Description“,”template“:”#:data.WidgetDescription#“}]},”columns“:[{”field“:”WidgetName“,”title“:”Name“,”template“:” #:data.WidgetName#“},{”field“:”WidgetDescription“,”title“:”Description“,”template“:”#:data.WidgetDescription#“}],”sortable“:{”mode“: “多重”, “allowUnsort”:真}, “滚动”:真}
当我尝试使用保存的状态重新加载网格时,我读取了JSON,解析它并将其重新分配给$ scope.GridOptions。但这不起作用:
$scope.GridOptions = JSON.parse($scope.GridOptionsBackup);
为什么在这行代码之后网格没有更新?
我非常感谢您提供的任何帮助!
答案 0 :(得分:2)
我找到了答案:
我必须给kendo-grid一个名字:
<div kendo-grid="GridBram" k-options="GridOptions" k-ng-delay="GridOptions"></div>
在我的Angular代码中,名称会自动绑定到范围。在那里我可以使用jQuery中使用的相同(奇怪)get和setOptions方法。我还使用var来存储JSON。
这是我的代码:
var savedState = null;
$scope.saveO = function () {
savedState = kendo.stringify($scope.GridBram.getOptions());
console.log(test);
}
$scope.loadO = function () {
$scope.GridBram.setOptions(JSON.parse(savedState));
}
像这样,你可以在Angular中保存和加载你的网格状态!
答案 1 :(得分:0)
创建2个角度按钮 按钮kendo-button ng-click =“save()”gt 拯救国家A. lt / button gt 按钮kendo-button ng-click =“load()”gt 加载状态A. lt / button gt var savedState = null;
$scope.save = function () {
// alert('sav')
savedState = kendo.stringify($scope.GridMAS.getOptions());
}
$scope.load = function () {
//alert('lod')
$scope.GridMAS.setOptions(JSON.parse(savedState));
}
为我工作