9

Ext.dispatchsencha touch 2 中 sencha touch 1.1 方法的替代品是什么?

我需要替换下面的代码

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

Ext.dispatchSencha 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 回答
3

试试这个,它应该工作:

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

或者,或者:

window['AppName'].app.dispatch({
    controller: 'ControllerName',
    action: 'MethodName',
    args:ArgsArray
}
于 2012-04-25T07:40:19.193 回答
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 回答