2011-07-23 12 views
2

あなたが内線コアに新しいメソッドを追加する方法を教えてくださいでした:Ext Coreに新しいメソッドを追加するには?

Ext.get('id').myMethod(); 

は、それが動作しません:

Ext.extend(Ext.Element, { 
    myMethod: function() { 
     this.on('click', function() { 
      alert(this); 
     }); 
    } 
}); 

答えて

2

ません(と仮定すると、あなたは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を返すようにしてください。または、独自のカスタマイズ機能を使用して要素を取得してください。

乾杯!

+0

ExtJS 4への新しいメソッドの追加に違いはありますか? – Algorithm

+0

作業する必要があります。彼らは 'Ext.override'を持っていますが、非推奨ではありません。 –

+0

ありがとうございました! – Algorithm

関連する問題