2013-12-18 105 views
0

在使用ExtJS時,有時我需要重寫組件的方法。如何覆蓋ExtJS組件的方法?

例如,在Ext.form.field.ComboBox中有一種方法createPicker。我想爲該方法編寫我自己的邏輯。我能怎麼做? Ext.override在這裏有用嗎?因爲我從不使用它。

回答

2

使用定義語句。這給你能夠把它掛接到系統級的優勢,因此它可以被要求:

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