あなたが内線コアに新しいメソッドを追加する方法を教えてくださいでした: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