我在 Angular 中加载网格的保存状态时遇到了一些问题。
这是网格 HTML:
<div id="grid" kendo-grid k-options="GridOptions" k-ng-delay="GridOptions"></div>
稍后我开始我的 Http 调用并填充 $scope.GridOptions 并且网格工作正常。
然后我以这种方式保存我的网格状态:
$scope.GridOptionsBackup = kendo.stringify($scope.GridOptions);
这工作正常,当我在控制台中打印输出时。它看起来像这样:
当我尝试使用保存的状态重新加载网格时,我读取了 JSON,解析它并将其重新分配给 $scope.GridOptions。但这不起作用:
$scope.GridOptions = JSON.parse($scope.GridOptionsBackup);
为什么在这行代码之后网格没有更新?
我非常感谢您能提供的任何帮助!
最佳答案
我找到了答案:
我不得不给剑道网格起一个名字:
<div kendo-grid="GridBram" k-options="GridOptions" k-ng-delay="GridOptions"></div>
在我的 Angular 代码中,名称会自动绑定(bind)到作用域。在那里我可以使用在 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 中保存和加载网格的状态!