2
你能告訴如何將新方法添加到內線核心:如何向Ext Core添加新方法?
Ext.get('id').myMethod();
它不工作:
Ext.extend(Ext.Element, {
myMethod: function() {
this.on('click', function() {
alert(this);
});
}
});
你能告訴如何將新方法添加到內線核心:如何向Ext Core添加新方法?
Ext.get('id').myMethod();
它不工作:
Ext.extend(Ext.Element, {
myMethod: function() {
this.on('click', function() {
alert(this);
});
}
});
(假設你正在使用的ExtJS 3)
沒有,這不是正確的方法。當我們需要擴展一個類並創建自己的類時,我們使用extend
。
然後,如果您想添加其他功能或重寫某些核心方法,請使用Ext.override
。由於您可以覆蓋任何已定義的方法,因此此操作具有永久性和破壞性。我們使用override
當我們要申請個人修復或全球變化(如覆蓋Ext.form.Field
,以提供全球,可用和交叉fields
功能)。
對於您的情況,您似乎希望將此方法應用於從Ext.get
捕獲的所有元素。您只需要覆蓋Ext.Element
。
Ext.override(Ext.Element, {
myMethod: function() {
this.on('click', function() {
alert(this);
});
}
});
這裏給出一個工作示例:jsfiddle。
請注意,Ext.get
給你Ext.Element
成功的通話。如果您想創建自定義Ext.Element
,請務必修改Ext.get
,以便它將返回您自己的自定義Ext.Element
,或者提供您自己的自定義功能以獲取元素。
乾杯!
添加ExtJS 4的新方法有什麼不同嗎? – Algorithm
應該工作。他們有'Ext.override'並且不被棄用。 –
更多謝謝你! – Algorithm