Внешняя фильтрация Angular.js UI-Grid вызывает пустую сетку

Когда я внешне фильтрую данные в ui-grid, в моей функции успеха я вижу правильно отфильтрованные данные, возвращаемые из моего сервиса. Но когда я применяю это, сетка пуста.

Изначально без фильтров я получаю все ожидаемые результаты.

Есть идеи, почему данные не отображаются?

app.controller('GridController', ['$scope', '$http', 'uiGridConstants', function ($scope, $http, uiGridConstants) {

    var paginationOptions = {
        pageNumber: 1,
        pageSize: 25,
        sort: null
    };

    $scope.gridOptions = {
        enableFiltering: true,
        useExternalSorting: false,
        paginationPageSizes: [25, 50, 75],
        paginationPageSize: 25,
        useExternalPagination: true,
        columnDefs: Mapping(type, $scope),
        onRegisterApi: function (gridApi) {
            $scope.gridApi = gridApi;
            $scope.gridApi.core.on.filterChanged($scope, function () {
                HandleFiltering(this.grid.columns);
            });
            $scope.gridApi.core.on.sortChanged($scope, function (grid, sortColumns) {
                if (sortColumns.length == 0) {
                    paginationOptions.sort = null;
                } else {
                    paginationOptions.sort = sortColumns[0].sort.direction;
                }
                Get();
            });
            gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
                paginationOptions.pageNumber = newPage;
                paginationOptions.pageSize = pageSize;
                Get();
            });
        }
    };

    var HandleFiltering = function (gridColumns) {
        for (var i = 0; i < gridColumns.length; i++)
        {
            CreateFilterObject(gridColumns[i], $scope);
        }
        Get();

    }

    var Get = function () {
        debugger;
        AjaxStart();

        var searchRequest = SearchRequest(paginationOptions.pageNumber,
                                           paginationOptions.pageSize,
                                           $scope.objectFilter);


        $.ajax({
            type: "Post",
            url: Service+ "/api/" + type + "/Search",
            data: searchRequest,

            success: function (data) {
                $scope.gridOptions.totalItems = data[0];
                $scope.gridOptions.data = data[1];
                var firstRow = (paginationOptions.pageNumber - 1) * paginationOptions.pageSize;

                debugger;
                $scope.$apply();
                AjaxEnd();
            },
            error: function (event, response, ajaxSettings, thrownError) {
                AjaxError(response);
                AjaxEnd();
            },


        });
    }

    Get();
}]);

0 ответов

Другие вопросы по тегам