2011-11-07 18 views
9

¿Cuál es el reemplazo de sencha touch 1.1 Ext.dispatch método en sencha touch 2?Sencha touch 2- Ext.dispatch replacement?

necesito reemplazo de código de abajo

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

Marque esta http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+0

Por cierto, ¿qué ha de rubí en los carriles 3 que ver con esta pregunta? :-) – ilija139

Respuesta

3

Método Ext.dispatch todavía existe en Sencha Touch 2: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-dispatch

Pero si lo que no le gusta usarlo por alguna razón, se puede obtener una instancia del controlador y el método de llamada dicotiledóneamente:

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

?? ¡La versión está incluso en el enlace hombre! es sencha 1.1 no 2! Comprueba este http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+1

Mi malo, pero de todos modos los controladores existen en Sencha 2, solo tienen otro espacio de nombres 'Ext.app.Controller'. Puede llamar al método estático 'getController' para obtener una instancia del controlador y luego llamar a algún método. Espero que esto ayude. –

1

Cuando la llamada se realiza desde un controlador, tendrá la aplicación instan ce por getApplication método, hay un método getControllerInstance que devuelve una matriz.

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

En contacto sencha 2.0 para obtener las instancias del controlador desde cualquier uso

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

donde su nombre de la aplicación se configura en app.js

3

probar esto, que debería funcionar:

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

O, alternativamente:

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

Debe agregar alguna explicación la próxima vez que responda una pregunta. No solo publiques el código. –