2012-01-02 9 views
2

私は、Dojo 1.7でAMDローダーを使用するようにDojo 1.6.1 DataGridの例を変換し、 "1.7 way"を試してみます。Dojo 1.7とAMDローダーを使用して、DataGridのイベントをキャプチャするときにdojo/onを使用する予定ですか?

現在、私はdojo.connect(grid, "onApplyEdit", applyEdit);ですが、これをdojo/onを使用するように変換したいと思います。

私はon(grid, "onApplyEdit", applyEdit);への簡単な変換は機能するかもしれないと考えましたが、そうではありません。

私はいくつかのon()の例で気付きましたが、イベント名はclickのような通常のdomイベントです。

グリッドのイベント名を変更したり、DOM以外のイベントを処理する準備が整っていないか、またはDataGridがemit on()イベントに更新されていない可能性がありますか?

答えて

3

dojo.onは、DOMおよびブラウザ関連のイベントで動作します。 DOM以外のイベントやブラウザ以外のイベントは、単純なメソッド呼び出しです。 AOPを使用して接続できます。詳細はdojo/aspect.jsを参照してください:http://livedocs.dojotoolkit.org/dojo/aspect

+0

上記の例の場合、グリッドに表示される「do」メソッドなので、aspect.after(grid、 "doApplyEdit"、applyEdit)を使用しますか? – Reuben

+1

ええ、どうしてですか。擬似イベントは通常本体がないため、好きなAOPメソッドを使用できます。 'dojo.connect'のように、チェーン・ハンドラーをFIFO形式にするには、" after "があなたのチケットです。 –

0

さて、私はこの方法を作業それを得た:

var signal = dojo.on(grid4, 'ApplyCellEdit', function(inValue, inRowNdx, inStoreNdx){..}); 

eventnameにから 'オン' のままアウト 'onApplyCellEdit'。

関連する問題