我有一个使用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中的网格和下拉列表。