2013-12-18 5 views
0

При работе с ExtJS иногда мне нужно было переопределить методы компонентов.Как переопределить методы компонента ExtJS?

Например, существует один метод createPicker в Ext.form.field.ComboBox. Я хочу написать свою собственную логику для этого метода. Как я могу сделать? Полезно здесь Ext.override? поскольку я никогда не использую его.

ответ

2

Используйте инструкцию define. Это дает вам преимущество, которое позволяет подключить его в систему класса, так что он может быть потребовано:

Ext.define('MyOverrideName', { 
    override: 'Ext.form.field.ComboBox', 

    createPicker: function() { 
     console.log('I am an override!'); 
     // Will call Ext.form.field.ComboBox.createPicker, the thing we're overriding 
     // this.callParent(); 
     // Will call Ext.form.field.Picker.createPicker, the superclass of combo 
     // this.callSuper(); 
    } 

}); 
+0

Привет .. @Evan Trimboli спасибо .. Я делаю то же самое, используя ключевое слово расширения вместо переопределения в вашем пример. Есть ли разница в этом? –

+2

Да. 'extend' создает целый новый класс. 'override' изменяет метод непосредственно на класс. –

+1

Я всегда делаю это, используя: 'Ext.override (Ext.form.field.Combobox, {' Это просто другой способ сделать то, что вы показали выше? – forgivenson

Смежные вопросы