2016-03-28 3 views
0

Я получаю данные сетки кендо от бэкэнда и устанавливаю его для вариантов сетки кендо alignedProcessesToRiskGridOptions теперь данные отображаются в сетке, но я также хотел получить необработанные данные, чтобы написать некоторую логику. Как я могу получить данные из dataSource или напрямую звонить RiskService Завод AngularJs и назначьте его var gridData?Как получить исходные данные из kendo dataSource?

ctrl.js

$scope.alignedProcessesToRiskGridOptions = RiskService.alignedProcessToRiskGrid(); 
    $scope.alignedProcessesToRiskGridOptions.dataSource = RiskService.getAlignedProcessesToRiskGridDataSource($stateParams.riskId); 
    gridData = $scope.alignedProcessesToRiskGridOptions.dataSource.data(); 
    console.log('RISK DATA', gridData); 

factory.js

getAlignedProcessesToRiskGridDataSource: function(riskKey) { 
     var countNew = 0; 
     return new kendo.data.DataSource({ 
        type: 'json', 
        serverPaging: true, 
        serverSorting: true, 
        serverFiltering: true, 
        transport: { 
         read: function(options) { 
          var gridSearchObject = { 
           skip: options.data.skip, 
           take: options.data.take, 
           pageSize: options.data.pageSize, 
           page: options.data.page, 
           sorting: options.data.sort, 
           filter: options.data.filter 
          }; 
          return $http.post(
           'app/risk/rest/allAlignedProcessesToRisk/' + riskKey, gridSearchObject).success(
           function(data) { 
            countNew = data.totalCount; 
            options.success(data.resultDTOList); 
           }); 
         } 

        }, 
+0

Что написано на консоли для консоли.log ('RISK DATA', gridData); '? – whipdancer

+0

возвращает функцию, но нет данных – hussain

+0

Описывает ли она 'RISK DATA undefined'? Показывает ли это 'gridData' как объект? Он пишет пустую строку? – whipdancer

ответ

1

Согласно документации кендо, есть по крайней мере несколько способов, чтобы получить на фактических данных из источника данных.

There is the view method

Возвращает элементы данных, которые соответствуют текущей странице, фильтра, сортировки и групповой конфигурации. Сравните с методом данных, который будет возвращать элементы данных со всех страниц, если используются локальные привязки данных и пейджинг .

There is the data method

Получает или устанавливает элементы данных из источника данных.

Если источник данных связан с удаленной службой (через опцию транспорта ), метод данных возвращает ответ службы. Каждый элемент из ответа завернут в файл kendo.data.ObservableObject или kendo.data.Model (если установлен параметр schema.model).

Если источник данных привязан к массиву JavaScript (через опцию ), метод данных возвращает элементы этого массива. Каждый элемент из массива обернут в файл kendo.data.ObservableObject или kendo.data.Model (если установлен параметр schema.model).

Поскольку вы используете метод data, вы должны иметь доступ к данным с помощью свойств и методов результирующего объекта.

Вы должны быть в состоянии проверить length из gridData через console.log(gridData.length), а также проверки любого отдельного объекта в данных с помощью индекса массива console.log(gridData[0]). Далее вы сможете проверить свойства объектов через console.log(gridData[0].firstProperty).

Если ни одна из этих функций не работает, возможно, это связано с тем, что источник данных не проверяется в контексте query или fetch. Если вы check out this example, вы увидите, что данные оцениваются внутри функции fetch.

Дополнительную информацию о the Kendo DataSource in their online documentation.

Наконец, вы можете увидеть пример различных способов использования источника данных Kendo в this question about the kendo grid.

+0

Большое вам количество данных() работало для меня. – hussain