我想为商店中的每个记录显示一个自定义UI组件。
看起来DataView是做这件事的最佳方式。有很多旧的链接说明了如何通过使用DataViewItem来实现这一点,但是我在当前的文档中找不到任何东西(我使用的是6.0.2版本)。使用extjs6可以做到这一点吗?下面是我现在使用的模板:
var myTpl= new Ext.XTemplate(
'<tpl for=".">',
'<div>My object is too complex to be displayed with simple html<div>',
'</tpl>'
);
Ext.define( 'MyProject.view.main.MyList', {
extend: 'Ext.DataView',
xtype: 'mylist',
requires: [
'MyProject.view.main.MyViewModel'
],
viewModel: {
type: 'myviewmodel'
},
bind: {
store: '{store}'
},
// I don't want to do this. I would rather have something like this:
// itemXType: 'myitem'
itemTpl: myTpl,
} );我省略了viewModel实现,因为它唯一要做的就是定义一个代理存储。如果你需要的话,我可以把它加进去。
有没有其他方法可以做到这一点?也许是数据视图以外的其他东西?
发布于 2016-09-21 22:20:26
这在ExtJS 6.0.2中是可能的。只要看看Touch 2.4 example就知道了。这是Touch2.4的一个例子,但它仍然可以在带有现代工具包的ExtJS 6.0.2中工作。请看这个Sencha fiddle (我只是复制了Touch示例中的代码,并选择了ExtJS 6.0.2 -现代工具包)。关于文档:也许您正在查看经典工具包的文档。这里没有Ext.DataView,但您可以使用Ext.view.View
简短版本:使用
config: {
defaultType: 'mydataitem',
useComponents: true
}在你的DataView里。
创建一个自定义DataItem,它扩展了
Ext.dataview.component.DataItem然后在那里添加您想要的组件。
https://stackoverflow.com/questions/39617389
复制相似问题