AngularJS中的Kendo UI Grid Persist状态

时间:2014-12-17 09:51:23

标签: angularjs kendo-ui kendo-grid

我在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);

为什么在这行代码之后网格没有更新?

我非常感谢您提供的任何帮助!

2 个答案:

答案 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));
    }

为我工作

相关问题