初始化时如何恢复网格状态?
How to restore grid state during initialization?
我有 Angular UI 网格,用户可以在其中通过单击列 headers 更改排序顺序。我想在用户离开控制器时保留用户的选择,并在用户 returns 返回控制器时恢复选择的排序顺序。 UI Grid 有 saveState 模块,所以我用它来保存用户离开控制器时的状态。
问题是我无法恢复这个保存的状态。我应该什么时候调用 saveState.restore()?如果我在 onRegisterApi 中调用它,那么它不起作用,因为尚未构建列。
我在用数据填充网格后立即调用它。
$scope.loadData = function () {
$q.all([
myDataLoaderFunction.$promise
])
.then(function (data) {
$scope.gridOptions.data = data[0];
var savedState = SomeServiceThatIStoredMyStateInto.getSavedGridState();
if (savedState) {
$scope.gridApi.saveState.restore($scope, savedState);
}
}, function () {
$scope.gridOptions.data = [];
});
};
你可以这样试试
$scope.gridOptions = {
exporterMenuCsv: false,
enableGridMenu: true,
enableColumnResizing: true,
enableFiltering: true,
saveVisible: true,
saveOrder: true,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
$timeout(function () {
$scope.restoreState(); //call my restore function
}, 100);
},
data: $scope.bookings
};
我有 Angular UI 网格,用户可以在其中通过单击列 headers 更改排序顺序。我想在用户离开控制器时保留用户的选择,并在用户 returns 返回控制器时恢复选择的排序顺序。 UI Grid 有 saveState 模块,所以我用它来保存用户离开控制器时的状态。
问题是我无法恢复这个保存的状态。我应该什么时候调用 saveState.restore()?如果我在 onRegisterApi 中调用它,那么它不起作用,因为尚未构建列。
我在用数据填充网格后立即调用它。
$scope.loadData = function () {
$q.all([
myDataLoaderFunction.$promise
])
.then(function (data) {
$scope.gridOptions.data = data[0];
var savedState = SomeServiceThatIStoredMyStateInto.getSavedGridState();
if (savedState) {
$scope.gridApi.saveState.restore($scope, savedState);
}
}, function () {
$scope.gridOptions.data = [];
});
};
你可以这样试试
$scope.gridOptions = {
exporterMenuCsv: false,
enableGridMenu: true,
enableColumnResizing: true,
enableFiltering: true,
saveVisible: true,
saveOrder: true,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
$timeout(function () {
$scope.restoreState(); //call my restore function
}, 100);
},
data: $scope.bookings
};