是否可以创建一个读取json的商店,并将json中元数据中指定的字段用作模型?
我想说的是:
var store = new Ext.data.Store({
autoLoad: {
params: {
metaNeeded: true
}
},
reader: new Ext.data.JsonReader({fields:[]}),
proxy: new Ext.data.HttpProxy({
api: {
url: 'php/chart-data.php'
}
})
});
我尝试了很多组合,但似乎无法让它发挥作用。 我目前收到错误“无法调用方法'indexOf'未定义”。我有其他人,包括“对象没有读取方法”。
我发送的json是:
{
metadata:{
root:"rows",
sortInfo:{
field:"date",
direction:"ASC"
},
fields:[ {
name:"date"
}, {
name:"flow"
},{
name:"limit"
}
],
idProperty:"date"
},
success:true,
rows: << snip >>
}
是否可以通过收到的数据配置商店的模型,以便稍后我可以在同一商店使用不同的字段(例如日期,流量,限制和温度)?
答案 0 :(得分:1)
我已经使用以下内容:
var store = new Ext.data.Store({
proxy: {
type: 'ajax',
url: 'php/chart-data2.php',
reader: new Ext.data.JsonReader({
fields:[]
})
}
});
发送json的php:
'{"metaData":{
"root":"rows",
"fields": [
{"name":"date",
"type":"number",
"convert": function(val, rec) {
return val*1000
} },
{"name":"flow"},
{"name":"limit"}
]
},
"totalCount":'.count($chart).',
"success":true,
"rows":' . json_encode($chart) . '
}'
现在允许服务器指定数据(在图表中显示),并可以动态添加。我不知道它是否好,但它确实有效。我对此缺乏文档感到失望。