【问题标题】:Kendo UI Grid Persist state in AngularJSAngularJS中的Kendo UI Grid Persist状态
【发布时间】:2014-12-17 09:51:22
【问题描述】:

我在 Angular 中加载已保存的网格状态时遇到了一些问题。

这是网格 HTML:

<div id="grid" kendo-grid k-options="GridOptions" k-ng-delay="GridOptions"></div>

稍后我开始我的 Http 调用并填写了 $scope.GridOptions 并且网格工作正常。

然后我以这种方式保存网格的状态:

$scope.GridOptionsBackup = kendo.stringify($scope.GridOptions);

这很好用,当我在控制台中打印输出时。它看起来像这样:

{"dataSource":{"schema":{"data":"Data"},"transport":{},"serverSorting":true,"table":null,"fields":[{"encoded ":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": "multiple","allowUnsort":true},"scrollable":true}

当我尝试使用保存的状态重新加载网格时,我读取 JSON,对其进行解析并将其重新分配给 $scope.GridOptions。但这不起作用:

$scope.GridOptions = JSON.parse($scope.GridOptionsBackup);

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

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

【问题讨论】:

    标签: angularjs kendo-ui kendo-grid


    【解决方案1】:

    我找到了答案:

    我必须给剑道网格起个名字:

    <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 中保存和加载网格的状态!

    【讨论】:

    • 它对我不起作用,当我尝试在 $scope 上使用它时,我得到未定义 - 你能显示更多你的代码吗?你是如何初始化网格的?使用 jQuery 还是使用 Angular?
    • 我用 Angular 初始化网格。你能用你的代码给一个 plunker 的链接,以便我帮忙吗?
    • stackoverflow.com/questions/27856910/… 这是我的问题,所以你可以看到代码的 sn-p
    【解决方案2】:

    创建 2 个角按钮 lt 按钮 kendo-button ng-click="save()" gt 保存状态 A lt /按钮 gt lt 按钮 kendo-button ng-click="load()" gt 负载状态 A lt /按钮 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));
        }
    

    为我工作

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多