我正在从后端获取剑道网格数据并将其设置为剑道网格选项
alignedProcessesToRiskGridOptions现在数据显示在网格中,但是我还想获取原始数据以编写一些逻辑,如何从dataSource获取数据或直接调用RiskService AngularJs工厂并将其分配给var gridData

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

                    },

最佳答案

根据kendo文档,至少有两种方法可以从数据源获取实际数据。

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检查gridDataconsole.log(gridData.length),以及通过数组索引console.log(gridData[0])检查数据中的任何单个对象。此外,您还应该能够通过console.log(gridData[0].firstProperty)检查对象的属性。

如果这些都不起作用,则可能是因为未使用queryfetch的上下文检查数据源。如果您check out this example,您将看到在fetch函数内部正在评估数据。

您可以找到有关the Kendo DataSource in their online documentation的更多信息。

最后,您可以在this question about the kendo grid中看到我使用Kendo数据源的不同方式的示例。

09-25 18:23
查看更多