我正在使用Kendo下拉列表显示来自远程服务呼叫的数据。
首先,这是HTML模板中的定义:
<select
kendo-drop-down-list
k-options="dropdownOptions"
k-ng-delay="dropdownOptions">
</select>
接下来,这是从AngularJS控制器填充下拉列表的代码:
var myUrl = '(url of REST service)';
$scope.dropdownOptions = {
dataSource: {
transport: {
read: {
url: myUrl,
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=ISO-8859-1"
},
parameterMap: function (data, type) {
const req = {
"PARAMS": $scope.params
};
return JSON.stringify(req);
}
}
},
dataTextField: 'DESCRIPTION',
dataValueField: 'VALUE',
schema: {
type: "json",
data: "resultData",
model: {
id: "VALUE",
fields: {
"VALUE":{field: "VALUE", type: "string"},
"DESCRIPTION":{field: "DESCRIPTION", type: "string"}
}
}
}
};
(注意:REST服务需要通过POST将数据作为JSON对象提供,因此类型和parameterMap也要提供)。
我已经确认,要填充下拉列表的数据是作为键“ resultData”下的数组从REST服务返回的:
{
"resultData":[{"DESCRIPTION":"Whatever","VALUE":"VALUE1"},...]
}
有人可以帮助我吗?
更新
我在开发控制台中也看到“ e.slice不是函数”。
修改
已将id字段添加到模型,无效。
答案 0 :(得分:0)
问题是schema
应该是dataSource
的子代。修复问题后,数据开始显示。