使用
加载使用树视图组件的商店时store: 'somestore'
具有以下设置:
Ext.define('App.store.AdminNavigationTree', {
extend: 'Ext.data.TreeStore',
model: 'App.model.AdminNavigationTree',
storeId: 'AdminNavigationTree',
headers: { 'Content-Type': 'application/json' },
proxy: {
type: 'ajax',
url: settings.ApiUrl + '/View/AdminNavigation/?format=json',
reader: {
type: 'json',
root: 'result',
}
},
folderSort: true
});
数据加载正常。
尝试使用以下商店调用store.load时,目的是填充表单,而不是!
Ext.define('App.store.PromotionCompany', {
extend: 'Ext.data.Store',
model: 'App.model.PromotionCompany',
storeId: 'PromotionCompany',
headers: { 'Content-Type': 'application/json' },
proxy: {
type: 'ajax',
url: settings.ApiUrl + '/Model/PromotionCompany/?format=json',
reader: {
type: 'json',
root: 'result',
}
}
});
我正在使用ServiceStack作为API,这两个网址都设置了[EnableCors]
,确实 - 当使用以下内容调用store.load
时:
store.load({
params: { id: pcid },
callback: function (records, options, success) {
//do something
}
});
我可以看到请求进入API并返回正确的数据!
有没有人知道ExtJs在这里可能会做些什么?
答案 0 :(得分:1)
根据我在上一次ExtJs + ServiceStack项目中的回忆,TreeStore和Store期望不同的数据结构。
编辑1:我查找了我的代码,响应类似,唯一的区别是包含其他信息,如leaf:true等。我也没注意到你已经在代码示例中设置了root属性。