我的商店:
Ext.define('MyApp.store.NameStore',{
extend: 'Ext.data.Store',
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
proxy:{
type:'ajax',
url:'../api/AdminPanel/GetNames',
reader:{
type:'json',
rootProperty:'data'
}
},
fields:[{
name:'name',
calculate:function(data) {
var x = data;
return x.replace('<','<').replace('>','>');
}
}]
},cfg)]);
}
});
商店应该采取的数据:
{"success":true,"data":["Axel Braun <axel.braun@contoso.com>","Andy Martin <amartin@contoso.com>","Charlotte Henrici <charlotte@contoso.com>"]}
我尝试使用json
阅读器并覆盖&#34;计算&#34;和/或&#34;转换&#34;函数,但数据为undefined
。
我也尝试使用array
读者,因为它看起来很自然。但对于array
读者,名称为str[0]
(&#34; A&#34;),ID为str[1]
(&#34; x&#34;),之前我甚至可以进入convert
功能。
那么,如何将一维字符串数组转换为商店?
答案 0 :(得分:1)
一种方法是覆盖Reader.getData
(在Ext 4中)将您的字符串数组转换为对象数组。
Ext.define('MyApp.store.NameStore',{
extend: 'Ext.data.Store',
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
proxy:{
type:'ajax',
url:'../api/AdminPanel/GetNames',
reader:{
type:'json',
rootProperty:'data',
getData: function(data) {
return data.map(function(str) {
return {emailSpec: str};
});
}
}
},
fields:[
'emailSpec',
{
name:'name',
calculate: function(data) {
return data.emailSpec.replace('<','<').replace('>','>');
}
}
]
},cfg)]);
}
});
所述
Ext.define('MyApp.store.NameStore',{
extend: 'Ext.data.Store',
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
proxy:{
type:'ajax',
url:'../api/AdminPanel/GetNames',
reader:{
type:'json',
rootProperty:'data',
transform: function(data) {
return data.map(function(str) {
return {emailSpec: str};
});
}
}
},
fields:[
'emailSpec',
{
name:'name',
convert: function(data) {
return data.emailSpec.replace('<','<').replace('>','>');
}
}
]
},cfg)]);
}
});