我已经阅读了有关为 Store 中的每个元素创建自定义组件的教程。DataView
它说关于将记录字段映射到 中的组件DataItem
,但我的问题是如何定义将组件添加到的顺序DataItem
。
例如,我有这样的 DataItem:
Ext.define('demo.view.CottageItem', {
extend: 'Ext.dataview.component.DataItem',
requires: ['Ext.Label', 'Ext.Array', 'Ext.Img'],
xtype: 'listitem',
config: {
layout: {
type: 'hbox',
align: 'center',
pack: 'start',
},
title: {
flex: 1
},
photo: {
width: '140px',
height: '140px'
},
dataMap: {
getTitle: {
setHtml: 'title'
},
getPhoto: {
setSrc: 'photo'
}
},
styleHtmlContent: true
},
applyTitle: function(config) {
return Ext.factory(config, Ext.Label, this.getTitle());
},
updateTitle: function(newTitle, oldTitle) {
if (oldTitle) {
this.remove(oldTitle);
}
if (newTitle) {
this.add(newTitle);
}
},
applyPhoto: function(config) {
return Ext.factory(config, Ext.Img, this.getPhoto());
},
updatePhoto: function(newImage, oldImage) {
if (oldImage) {
this.remove(oldImage);
}
if (newImage) {
this.add(newImage);
}
},
});
它有 layout type hbox
,所以我想先添加照片然后添加标题。因此,该标题将位于照片的右侧。我怎样才能做到这一点?
另一个问题是,有没有办法在这个里面添加另一个容器DataItem
,可以在其中插入我的标签和图像?
更新: 现在我的布局如下所示:
|标签(标题)| |图片(照片)|
我希望它看起来像这样:
|图片(照片)| |标签(标题)|