代码之家  ›  专栏  ›  技术社区  ›  jrocc

角度用户界面网格还原状态不工作

  •  0
  • jrocc  · 技术社区  · 6 年前

    我试图保存角度网格的状态,这样当您返回到网格时,用户可以恢复您离开它的位置。

    单击“保存”或“还原”时不会出错。

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

    我做错什么了?

    $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 回复  |  直到 6 年前
        1
  •  0
  •   jrocc    6 年前

    对于其他有这个问题的人我发现 $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")
       };