我的问题是我得到的json没有root。我可以让商店加载URL并返回JSON,但商店数据为空,回调中没有显示任何内容。
Json:
[
{
"symbol": "GM"
},
{
"symbol": "GA"
}
]
模型和商店:
Ext.define('Symbol', {
extend: 'Ext.data.Model',
fields: ['symbol']
});
Ext.define('Doc.store.symbol', {
extend: 'Ext.data.Store',
model: 'Symbol',
proxy: {
type: 'jsonp',
url: 'datasource/symbol',
reader: {
type: 'json',
model: 'symbol'
},
}
});
我也尝试删除根目录,但商店或回调中没有任何内容。我的googlefu在没有root的情况下对json没什么好处。
答案 0 :(得分:2)
根应该定义为空白root:''
以下是展示正确设置的代码:
Ext.define('boomer', {
extend:'Ext.data.Model',
fields: ['symbol'],
proxy: {
type: "ajax",
url: "data.json",
extraParams: {
},
reader: {
type: "json",
root: "",
successProperty: "success"
}
}
});
var store = Ext.create('Ext.data.Store',{
model: 'boomer',
});
store.load({
callback:function(){
Ext.Msg.alert('Store Items', store.data.items.length);
console.log(store.data.items);
}
});
答案 1 :(得分:1)
扩展Ext.data.reader.Json
以调整您的响应。稍后在代理阅读器中使用它。