我有以下plunker使用save / restore和localStorage: http://plnkr.co/edit/Ad12QG1uKFEf38aOtpaL?p=preview
我可以保存网格状态,调整一些列(如列调整大小,移动等),然后恢复到保存的网格状态就好了。
一旦我保存了它,我将如何进行"重置"功能工作?我想在保存更改之前将其重置为网格的默认状态。
我的尝试到目前为止还没有成功。我假设我会在恢复发生之前尝试保存加载时的默认状态...
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
$scope.defaultState = $scope.gridApi.saveState.save();
...
...然后恢复类似于$ scope.restoreState函数...
$scope.resetState = function() {
$scope.gridApi.saveState.restore($scope, $scope.defaultState);
}
......但那会引发错误。
答案 0 :(得分:1)
我能够让它发挥作用。这是一个有效的例子: http://plnkr.co/edit/Ad12QG1uKFEf38aOtpaL?p=preview
我采用了我在问题中概述的相同方法,但是我必须将defaultState包装在$ timeout()中,因为在没有超时的情况下,onRegisterApi中的状态不会立即可用。我确保在restoreState超时之前发生它。
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
$timeout(function() {
$scope.defaultState = $scope.gridApi.saveState.save();
}, 50);
$timeout(function() {
$scope.restoreState();
}, 100);
},
我对角度还不熟悉,所以我确信有人可以改善它。