在扩展类中定义项的默认xtype

时间:2015-10-06 19:11:29

标签: javascript extjs extjs5

我有这些扩展名:

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

1 个答案:

答案 0 :(得分:3)

正如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' }, ...