2011-11-07 91 views
9

sencha touch 2中的sencha touch 1.1 Ext.dispatch方法的替代品是什么?Sencha touch 2- Ext.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 
     }); 
    } 
} 
+1

入住这http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+0

顺便说一下什么轨道上3红宝石做这个问题? :-) – ilija139

回答

3

方法替代代码Ext.dispatch仍然存在,在煎茶触摸2:http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-dispatch

但是,如果你不喜欢使用它的一些原因,你可以得到一个控制器和调用方法的实例:

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

当调用从控制器完成时,您将拥有应用程序实例通过getApplication方法,有一种方法getControllerInstance,它返回一个数组。

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

在煎茶触摸2.0得到控制情况下从任何地方使用

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

在您的应用程序的名称是设置在app.js

3

试试这个,它应该工作:

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

下次您回答问题时,您应该添加一些解释。不要只发布代码。 –