【问题标题】:How to get the raw data from kendo dataSource?如何从 kendo 数据源获取原始数据?
【发布时间】:2016-03-28 14:39:59
【问题描述】:

我正在从后端获取剑道网格数据并将其设置为剑道网格选项 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);
                                });
                        }

                    },

【问题讨论】:

  • console.log('RISK DATA', gridData); 的控制台写入了什么?
  • 返回函数但没有数据
  • RISK DATA undefined?它是否将gridData 显示为对象?它会写一个空字符串吗?
  • gridData 作为对象

标签: javascript angularjs kendo-grid


【解决方案1】:

根据 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 方法,您应该能够通过结果对象的属性和方法访问数据。

您应该能够通过console.log(gridData.length) 检查gridDatalength,以及通过数组索引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 数据源的不同方式的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2014-08-01
    • 1970-01-01
    • 2021-09-06
    相关资源
    最近更新 更多