0

を含むdojoクラスを作成しました。このハンドラは、クラス内に格納されたデータを操作するために によって使用されます。イベントをトリガーした と、ハンドラーが属するクラスのインスタンスの両方をハンドラーが参照できるようにする必要があります。dojo/_base/declareonClickHandlerdijit/form/ButtonButton

たとえば、以下はクラスのハンドラー関数の最初の部分です。

drawToolClick : function(evt) {

    this.drawingtoolbar.deactivate(); // Here `this` should represent the instance of my class

    var parent = this.getParent(); // Here `this` should represent the button that was clicked

明らかにthis両方を表すために使用できないことはわかっていますが、クラス インスタンスを関数に使用dojo/_base/langするとhitch、どのボタンがクリックされたのかわかりません (複数のボタンが を表すため、同じハンドラーを使用していますenum)。クリックされたボタンのhitch this参照を省略した場合、ハンドラーが含まれるクラスのインスタンスを取得する方法がわかりません。

これを行うより良い方法はありますか?

4

1 に答える 1

0

それで、私はついにこれを理解しました。ステートメントvar self;の前にクラスが定義されているモジュールに変数を追加しただけです。declare次に、クラスconstructor関数に を追加しましself = this;た。

次に、onclickハンドラーでthis、クリックされたボタンをself参照し、クラス インスタンスを参照します。

これは問題なく動作するようです。

于 2013-04-04T16:03:24.897 に答える