在外面定义字段,然后带入项目列表
Define fields outside and then bring into items lits
我正在使用 extJs 6。我有如下代码,它可以是文本框或其他任何东西。我想为所有字段创建一个通用存储库,然后使用 xtype 或其他方式将其包含在报告中,因为相同的代码将在多个报告中使用。
items: [
{
xtype: 'combo',
fieldLabel: 'year',
name: 'Year',
displayField: 'Key',
valueField: 'Year',
value: new Date().getFullYear(),
store: {
type: 'years'
}
},
它应该看起来像
items: [
{
xtype: 'yearfield'
},
]
或
items: [
xtype: 'yearfield'
]
我应该如何定义这些字段以及它应该扩展什么。
由于您的旧字段属于 xtype:'combo'
,它是 Ext.form.field.ComboBox
,因此您必须扩展它。
Ext.define('MyApp.view.MyOwnYearField',{
extend:'Ext.form.field.ComboBox',
xtype:'yearfield', // <- the xtype of MyOwnYearField is defined here
fieldLabel: 'year',
name: 'Year',
displayField: 'Key',
valueField: 'Year',
value: new Date().getFullYear(),
store: {
type: 'years'
}
});
在使用 xtype:'yearfield'
之前,您必须加载文件所在的位置,例如通过将全名添加到 requires
列表:
Ext.define('MyApp.view.SomeReport',{
requires:[
'MyApp.view.MyOwnYearField' // The class is loaded here
],
items:[{
xtype:'yearfield' // The class is referenced by xtype.
// This is only possible after it has been loaded!
}]
我正在使用 extJs 6。我有如下代码,它可以是文本框或其他任何东西。我想为所有字段创建一个通用存储库,然后使用 xtype 或其他方式将其包含在报告中,因为相同的代码将在多个报告中使用。
items: [
{
xtype: 'combo',
fieldLabel: 'year',
name: 'Year',
displayField: 'Key',
valueField: 'Year',
value: new Date().getFullYear(),
store: {
type: 'years'
}
},
它应该看起来像
items: [
{
xtype: 'yearfield'
},
]
或
items: [
xtype: 'yearfield'
]
我应该如何定义这些字段以及它应该扩展什么。
由于您的旧字段属于 xtype:'combo'
,它是 Ext.form.field.ComboBox
,因此您必须扩展它。
Ext.define('MyApp.view.MyOwnYearField',{
extend:'Ext.form.field.ComboBox',
xtype:'yearfield', // <- the xtype of MyOwnYearField is defined here
fieldLabel: 'year',
name: 'Year',
displayField: 'Key',
valueField: 'Year',
value: new Date().getFullYear(),
store: {
type: 'years'
}
});
在使用 xtype:'yearfield'
之前,您必须加载文件所在的位置,例如通过将全名添加到 requires
列表:
Ext.define('MyApp.view.SomeReport',{
requires:[
'MyApp.view.MyOwnYearField' // The class is loaded here
],
items:[{
xtype:'yearfield' // The class is referenced by xtype.
// This is only possible after it has been loaded!
}]