2011-11-07 12 views
9

sencha touch 2のsencha touch 1.1 Ext.dispatchメソッドの代わりになるものは何ですか?Sencha touch 2- Ext.dispatch replacement?

私は方法Ext.dispatchはまだ煎茶タッチ2に存在する

listeners:{ 
    itemtap:function(data,index){ 
     var record = data.getStore().getAt(index); 
     // the record that has been clicked. 
     Ext.dispatch({ 
      controller: 'ControllerName' 
      ,action: 'ControllerMethod' 
      ,record: record 
     }); 
    } 
} 
+1

チェックこのhttp://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+0

ところでレール3上のルビーは、この質問で何をしますか? :-) – ilija139

答えて

3

以下のコードの交換が必要になります。

http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-dispatch

しかし、あなたはいくつかの理由のためにそれを使用することが好きではない場合、あなたが得ることができますコントローラのインスタンスとdicrectlyメソッドを呼び出します。

Ext.ControllerManager.get('ControllerName').ControllerMethod({record: record}); 
+1

??バージョンはリンクマンでさえあります!それはsencha 1.1ではありません2!これをチェックしてくださいhttp://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+1

私の悪いですが、とにかくコントローラはSencha 2に存在し、別の名前空間 'Ext.app.Controller'を持っています。静的メソッド 'getController'を呼び出してコントローラのインスタンスを取得し、そこから何らかのメソッドを呼び出すことができます。お役に立てれば。 –

1

を呼び出しは、コントローラから行うことが別途納入規格たら、アプリケーションinstanを持っていますgetApplicationメソッドによって、配列を返すメソッドgetControllerInstanceがあります。煎茶タッチ2.0では

this.getApplication().getControllerInstances()['yourcontrollername'].yourmethod(yourparams) 
3

でアプリケーション名が設定され

<your app name>.app.getController('your controller name'); 

を使用してから、コントローラのインスタンスを取得するには、それが動作するはずです、これを試してみてください:

window['AppName'].app.getController('ControllerName').MethodName(Args) 

あるいは、

window['AppName'].app.dispatch({ 
    controller: 'ControllerName', 
    action: 'MethodName', 
    args:ArgsArray 
} 
-1
yourAppName.getApplication().getController('yourControllerId').yourMethodName(args); 
+1

次に質問に答えたときに説明を追加してください。コードを投稿するだけではありません。 –