使用AngularJS的Kendo Grid。访问数据项

时间:2015-09-24 21:00:14

标签: angularjs kendo-ui kendo-grid

我有一个使用Kendo的应用程序,在我的模型中,我有几个项目数组,我需要在下拉列表中显示。我可以在下拉列表中显示直接在模型外的项目,但无法弄清楚如何访问当前行的项目。

用于显示网格的HTML。

    <div kendo-grid="grid" options="surchargeGridOptions"></div>

我的网格选项的JavaScript。

    $scope.surchargeGridOptions = {
        dataSource: {
            pageSize: 15,
            autoSync: true,
            autoBind: false,

            transport: {
                read: function(e) {
                    service.getCustomers($scope.model.customer.CustomerID)
                        .success(function(data, status, headers, config) {
                            e.success(data);
                        });
                }
            }
        },
        toolbar: ["create"],
        sortable: true,
        pageable: true,
        selectable: true,
        editable: true,
        columns: [
            {
                field: "CarrierID",
                title: "Carrier",
                editor: "<input kendo-drop-down-list k-data-text-field=\"'Value'\" k-data-value-field=\"'Key'\" k-data-source=\"model.Carriers\" ng-model=\"dataItem.CarrierID\"/>",
                template: "#=getCarrierName(CarrierID)#"
            },
            {
                field: "RateGroupID",
                title: "Rate Group",
                editor: "<input kendo-drop-down-list k-data-text-field=\"'Name'\" k-data-value-field=\"'Id'\" k-data-source=\"dataItem.RateGroups\" ng-model=\"dataItem.RateGroupID\"/>",
                template: "#=getRateGroupName(RateGroupID, dataItem.RateGroups)#"
            },
            {
                command: "destroy",
                title: " ",
            },
        ]
    };

在RateGroupID的列中,我收到一条错误,指出dataItem未定义。当模板包含在列定义中时会发生。

函数调用模板

    getCategoryName = function (key) {
        for (var idx = 0, length = $scope.model.Categories.length; idx < length; idx++) {
            if ($scope.model.Categories[idx].Key === key) {
                return $scope.model.Categories[idx].Value;
            }
        }
        return "";
    };

    getRateGroupName = function (key, list) {
        for (var idx = 0, length = list.length; idx < length; idx++) {
            if (list[idx].Id === key) {
                return list[idx].Name;
            }
        }
        return "";
    };

如何访问dataItem以从数组中检索信息。另外,有没有更好的方法来做我正在尝试使用Angular和Kendo中的网格和下拉列表。

0 个答案:

没有答案