我试着学习这里给出的小猫例子,form
我有复杂的组件,其中我的数据的一个属性是一个对象列表。我正在使用Ext.Container方法将list对象映射到setItems。然而,它似乎不起作用。在警报点,我将对象作为未定义的。但是,如果我将setItems更改为setText,则得到对象的字符串表示形式。有人对我错过了什么有什么建议吗?
Ext.define('MyListItem', {
extend: 'Ext.dataview.component.DataItem',
requires: ['Ext.Container'],
xtype: 'mylistitem',
config: {
sponsor: true,
dataMap: {
getSponsor: {
setItems: 'sponsor'
}
}
},
applySponsor: function(config) {
// I put an alert here to see if I get getSponsor() but the object I get here is undefined
alert(this.getSponsor());
return Ext.factory(config, Ext.Container, this.getSponsor());
},
updateSponsor: function(newNameButton, oldNameButton) {
if (oldNameButton) {
this.remove(oldNameButton);
}
if (newNameButton) {
this.add(newNameButton);
}
},
onSponsorTap: function(button, e) {
var sponsors = record.get('sponsor');
//my specific action
}
});
Ext.define('MyApp.model.Sponsors', {
extend: 'Ext.data.Model',
xtype:'Sponsors_m',
config: {
fields: [
{name: 'level', type: 'auto'},
{name: 'id', type: 'int'},
{name: 'sponsor', type: 'Sponsor'}
]
}
});
Ext.define('MyApp.model.Sponsor', {
extend: 'Ext.data.Model',
xtype:'Sponsor_m',
config: {
fields: [
{name: 'name', type: 'auto'},
{name: 'image', type: 'auto'},
{name: 'url', type: 'auto'},
{name: 'description', type: 'auto'}
]
}
});发布于 2013-04-05 08:18:02
嗯..。
你的模特里没有一个叫做“赞助商”的领域
config: {
sponsor: true,
dataMap: {
getSponsor: {
***setItems: 'sponsor'*** //this supposed to map your component to the datafield
}
}
},尝试将粗体字体更改为字段名(setItems:' name ')
如果我没有弄错,更新方法的参数命名有严格的规则:*以“赞助商”作为配置名称的示例
newSponsor,oldSponsor
因此,赞助商的更新方法应该是:
updateSponsor: function(**newSponsor**, **oldSponsor**) {
if (oldSponsor) {
this.remove(oldSponsor);
}
if (newSponsor) {
this.add(newSponsor);
}
},https://stackoverflow.com/questions/13223786
复制相似问题