Angular ui 网格恢复状态不工作
Angular ui grid restore state not working
我正在尝试保存 angular 网格的状态,这样当您返回网格时,用户可以恢复到您离开的位置。
单击保存或恢复时我没有收到任何错误。
保存网格后单击恢复时网格没有改变。
我做错了什么?
$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")
};
对于遇到此问题的其他人,我发现 $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")
};
我正在尝试保存 angular 网格的状态,这样当您返回网格时,用户可以恢复到您离开的位置。
单击保存或恢复时我没有收到任何错误。
保存网格后单击恢复时网格没有改变。
我做错了什么?
$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")
};
对于遇到此问题的其他人,我发现 $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")
};