Mvvm 如何在KendoUI中为底层JSON数据创建视图模型
我的问题是如何使用KendoObservable对象创建JSON数据(从.JSON文件解析)的视图模型对象Mvvm 如何在KendoUI中为底层JSON数据创建视图模型,mvvm,kendo-ui,telerik,kendo-ui-grid,Mvvm,Kendo Ui,Telerik,Kendo Ui Grid,我的问题是如何使用KendoObservable对象创建JSON数据(从.JSON文件解析)的视图模型对象 var viewModel = kendo.observable({ dtSource: new kendo.data.DataSource({ transport: { read: { url: "/data/SiteMaster.json", dataType: "json"
var viewModel = kendo.observable({
dtSource: new kendo.data.DataSource({
transport: {
read: {
url: "/data/SiteMaster.json",
dataType: "json"
}
},
schema: {
model: {
fields: {
siteName: { type: "string" },
address: { type: "string" },
status: { type: "string" },
persons: { type: "string" }
}
}
}
}),
});
稍后我会将viewmodel对象绑定到div元素
kendo.bind($(“div”),viewModel代码>
但是,我无法从JSON文件中读取内容
当我尝试在浏览器的开发人员控制台上调试时,未定义I getdtSource
下面是我正在阅读的SiteMaster JSON文件
{
"siteMaster":[
{
"siteName" : "SHG",
"filename" : "site1.json",
"persons": 1,
"status": "70%",
"address": "BergesHill Road",
},
{
"siteName" : "ABC",
"filename" : "site2.json",
"persons": 1,
"status": "67%",
"address": "BergesHill Road",
},
{
"siteName" : "XYZ",
"filename" : "site3.json",
"persons": 1,
"status": "80%",
"address": "BergesHill Road",
},
{
"siteName" : "Scots",
"filename" : "site4.json",
"persons": 1,
"status": "80%",
"address": "BergesHill Road",
}]
}
我从代码中注意到两件事
您的JSON仍然由“siteMaster”包装,它应该像[{},{},{},{}],而您的是{“siteMaster”:[{},{},{},{}]},或者您可以在数据源上的模型之后添加数据:“siteMaster”(看看我的示例)
人数应该是多少
为什么没有id(现在无关紧要)?但是如果没有它,就无法使用datasource.get()
下面是一个工作示例,其中实现了我的发现,它确实起了作用
html{
字体大小:12px;
字体系列:Arial、Helvetica、无衬线字体;
}
$(文档).ready(函数(){
var json={
“网站管理员”:[{
“站点名称”:“SHG”,
“文件名”:“site1.json”,
“人”:1,
“状态”:“70%”,
“地址”:“BergesHill路”,
}, {
“站点名称”:“ABC”,
“文件名”:“site2.json”,
“人”:1,
“状态”:“67%”,
“地址”:“BergesHill路”,
}, {
“站点名称”:“XYZ”,
“文件名”:“site3.json”,
“人”:1,
“状态”:“80%”,
“地址”:“BergesHill路”,
}, {
“站点名称”:“苏格兰人”,
“文件名”:“site4.json”,
“人”:1,
“状态”:“80%”,
“地址”:“BergesHill路”,
}]
}
var viewModel=kendo.observable({
dtSource:new kendo.data.DataSource({
数据:json,
模式:{
型号:{
字段:{
站点名称:{
类型:“字符串”
},
地址:{
类型:“字符串”
},
地位:{
类型:“字符串”
},
人员:{
类型:“编号”
}
}
},
数据:“网站管理员”,
}
}),
});
$(“#网格”).kendoGrid({
数据源:viewModel.dtSource,
身高:550,
栏目:[{
字段:“站点名称”,
标题:“网站名称”
}, {
字段:“地址”,
标题:“地址”
}, {
字段:“状态”,
标题:“地位”
}, {
字段:“人员”,
标题:“人”
}]
});
bind($(“#网格”),viewModel);
});