如何在初始化期间恢复网格状态?

时间:2015-08-05 08:36:06

标签: angular-ui-grid

我有Angular UI Grid,用户可以通过单击列标题来更改排序顺序。我想在用户离开控制器时保留用户的选择,并在用户返回控制器时恢复所选的排序顺序。 UI Grid有saveState模块,因此当使用离开控制器时,我用它来保存状态。

问题是我无法恢复这个保存状态。我什么时候应该调用saveState.restore()?如果我在onRegisterApi中调用它,那么它不起作用,因为列尚未构建。

2 个答案:

答案 0 :(得分:3)

你可以试试这种方式

$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
    };

答案 1 :(得分:1)

在我用数据填充网格之后,我就打电话给它。

$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 = [];
        });
};