Angular ui网格恢复状态不起作用

时间:2018-06-14 19:26:08

标签: angular local-storage angular-ui angular-ui-grid savestate

我正在尝试保存角度网格的状态,因此当您返回网格时,用户可以恢复您离开的位置。

单击保存或恢复时,我没有收到任何错误。

保存网格后单击还原时,网格不会更改。

我做错了什么?

$scope.saveState = function(){
     console.log("Saving")
     var state = $scope.gridApi.saveState.save();
     $window.localStorage.setItem('gridState', state);
     console.log("Saving done")
};

$scope.restoreState = function(){
    console.log("Restoring")
    var state = $window.localStorage.getItem('gridState');
    if (state) $scope.gridApi.saveState.restore($scope, state);
    console.log("Restoring done")
};

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的其他人,我发现$window.localStorage无法保存对象。

要解决此问题,您可以使用JSON.stringify

  $scope.saveState = function(){
        console.log("Saving")
        var state = $scope.gridApi.saveState.save();
        console.log(state)
        $window.localStorage.setItem('gridState', JSON.stringify(state));
        console.log("Saving done")
   };

   function restoreState(){
        console.log("Restoring")
        $timeout(function() {
           var state = $window.localStorage.getItem('gridState');
           console.log(state)
           if (state) $scope.gridApi.saveState.restore($scope, JSON.parse(state));
        });
        console.log("Restoring done")
   };