在扩展 class 中定义项目的默认 xtype

Defining default xtype of items in extended class

我有这些扩展:

Ext.define('Common.view.superstuff.SuperCheckboxGroup', {
    extend: 'Ext.form.CheckboxGroup',
    alias: 'widget.supercbgroup', ...

Ext.define('Common.view.superstuff.SuperCheckbox', {
    extend: 'Ext.form.Checkbox',
    alias: 'widget.supercb', ...

有没有办法让 Common.view.superstuff.SuperCheckboxGroup 默认为 xtype: supercb 的项目?

我试过这样的方法:

Ext.define('Common.view.superstuff.SuperCheckboxGroup', {
    extend: 'Ext.form.CheckboxGroup',
    alias: 'widget.supercbgroup',
    items: {xtype: 'supercb'}, ...

并且:

Ext.define('Common.view.superstuff.SuperCheckboxGroup', {
    extend: 'Ext.form.CheckboxGroup',
    alias: 'widget.supercbgroup',
    config: {
        items: {xtype: 'supercb'}
    }, ...

但是这些都不管用。

我已经确认如果我在创建复选框组时在复选框中指定 xtype: 'supercb',它确实可以正常工作。

只是想知道是否可以定义默认值 xtype

正如 Evan Trimboli 在评论中指出的那样,defaultType 属性 允许您为子项配置默认 xtype。

Ext.define('Common.view.superstuff.SuperCheckboxGroup', {
  extend: 'Ext.form.CheckboxGroup',
  alias: 'widget.supercbgroup',
  defaultType: 'supercb', ...

一个相关的 属性 允许子项的更多默认值是 defaults 属性;您还可以以这种方式配置默认类型。

Ext.define('Common.view.superstuff.SuperCheckboxGroup', {
  extend: 'Ext.form.CheckboxGroup',
  alias: 'widget.supercbgroup',
  defaults: { xtype: 'supercb' }, ...