extjs - full - Función del controlador de llamadas desde otro controlador/Compartir datos entre controladores
sencha touch download (3)
Por el momento, cuando estoy en un controlador y quiero llamar a una función desde otro controlador, hago esto:
App.app.getControllerInstances()[''App.controller.OtherController''].do_something();
Me parece un poco pesado, ¿hay otra (mejor) forma de hacerlo?
Gracias
Utilizaría el método getController: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-getController
EG: this.getApplication().getController(''ControllerName'').doSomething();
Si no está en el contexto de su Controlador (por ejemplo, en una función de devolución de llamada de algún objeto), puede hacerlo.
MyAppName.app.getController(''ControllerName'').doSomething();
Al usar la convención MVC en Sencha Touch 2, recomendaría lo siguiente cuando intente llamar a un método llamado ''SomeMethodInB'' en ''ControllerB'' desde dentro de ''ControllerA'':
MyAppName.app.getController (''ControllerB'').
''MyAppName'' es el nombre de la aplicación que definió en la definición de la aplicación principal, generalmente en su archivo app.js.
De acuerdo con los foros de Sencha, lo que sigue se deprecia:
this.getApplication (). getController (''ControllerB''). SomeMethodInB ();
http://www.sencha.com/forum/showthread.php?158996
De hecho, la única manera en que puedo llamar al método "this.getApplication ()" para que funcione es cuando lo llamo desde el archivo de definición de mi aplicación (app.js).