以编程方式更改xtype原型配置选项

时间:2013-08-10 23:11:20

标签: extjs extjs4 extjs4.2

是否可以通过编程方式更改xtype和用户定义的xtypes配置选项?执行此操作后,xtype的所有实例都将具有这些配置选项。

我希望能够在实例化之前定义某些xtypes的默认值。这些默认值取决于应用程序设置(maxLength,visible,vtype)

我不想迭代实例化的组件并设置属性。

感谢。

1 个答案:

答案 0 :(得分:0)

只要您没有覆盖默认值作为对象实例化的一部分,看起来就可以了。见http://jsfiddle.net/WteqQ/2/

Ext.define('Custom', {
    xtype: 'custom',
    defaultProp: 'default',
    defaultProp2: 'default2',
    customFn1: function () {
        alert(1);
    }
});

var a = new Custom();
a.defaultProp2 = 'overridden default';
a.customFn1();        //alerts 1
alert(a.defaultProp); //alerts default
alert(a.defaultProp2);//alerts overridden default
//a.customFn2();      //would throw error

Ext.define('Custom.Override', {
    override: 'Custom',
    defaultProp: 'new default',
    customFn1: function () {
        alert(2);
    },
    customFn2: function () {
        alert(3);
    }
});

a.customFn1();        //alerts 2
a.customFn2();        //alerts 3
alert(a.defaultProp); //alerts new default
alert(a.defaultProp2);//alerts overridden default

虽然这有效,但我认为在实例化组件之前将应用程序设置应用于会更好。