2011-11-07 147 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

下次您回答問題時,您應該添加一些解釋。不要只發布代碼。 –