我无法在网格中显示JSON数据。 html:
<div data-role="grid" data-bind="source: systems" data-columns='["SystemName", "SystemKey"]' ></div>
mvvm视图模型:
var viewModel = kendo.observable({
isVisible: true,
systems: new kendo.data.DataSource({
schema: {
model: {
id: "system_id"
}
},
transport: {
read: {
url: "/api/HomeApi?method=Ref/Systems"
}
}
})
});
kendo.bind($("#systems"), viewModel);
JSON数据的结构:
- JSON
- Data
- Data
{}
SystemName=TIBCO
SystemKey=TIBCO
..... etc
现在,如果数据以下列格式返回,它将显示正常:
[{ "SystemKey": "TIBCO", "SystemName": "TIBCO" }, { "SystemKey": "TIBCO", "SystemName": "TIBCO" }]
然而,如上所述,实际数据是一个更复杂的结构,而不是上面的简单结构。那么,我是否必须以某种方式解析这个问题,也许使用schema.parse来提取SystemName和SystemKey,因为它有几个级别?目前网格中没有数据显示,我得到了#34; Uncaught TypeError:undefined不是函数&#34;作为一个错误。
答案 0 :(得分:0)
答案是肯定的,我必须使用schema.parse。这就是它的作用:
schema: {
parse: function (response) {
var systems = [];
for (var i = 0; i < response.Data.Data.length; i++) {
var system = {
SystemName: response.Data.Data[i].SystemName,
SystemKey: response.Data.Data[i].SystemKey
};
systems.push(system);
}
return systems;
}
}