9

sencha touch 2 での sencha touch 1.1Ext.dispatchメソッドの置き換えは何ですか?

以下のコードを置き換える必要があります

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
        });
    }
}
4

5 に答える 5

8

sencha touch 2.0 では、どこからでもコントローラ インスタンスを取得するために使用します。

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

アプリケーション名が app.js に設定されている場所

于 2012-03-01T23:02:41.163 に答える
3

これを試してください、うまくいくはずです:

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

または、代わりに:

window['AppName'].app.dispatch({
    controller: 'ControllerName',
    action: 'MethodName',
    args:ArgsArray
}
于 2012-04-25T07:40:19.193 に答える
3

メソッドExt.dispatchは Sencha Touch 2 にも存在します: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-dispatch

ただし、何らかの理由で使用したくない場合は、コントローラーのインスタンスを取得してメソッドを直接呼び出すことができます。

Ext.ControllerManager.get('ControllerName').ControllerMethod({record: record});
于 2011-11-07T18:14:09.733 に答える
1

コントローラから呼び出しを行う場合getApplicationは、メソッドごとにアプリケーションインスタンスがありgetControllerInstance、配列を返すメソッドがあります。

this.getApplication().getControllerInstances()['yourcontrollername'].yourmethod(yourparams)
于 2012-02-29T08:31:56.637 に答える
-1
yourAppName.getApplication().getController('yourControllerId').yourMethodName(args);
于 2012-09-22T13:26:52.663 に答える