Pour le moment, lorsque je suis dans un contrôleur et que je veux appeler une fonction d'un autre contrôleur, je le fais:
App.app.getControllerInstances()['App.controller.OtherController'].do_something();
3 Réponses :
J'utiliserais la méthode getController: http: / /docs.sencha.com/touch/2-0/#!/api/ext.app.application-method-getcontroller P>
EG: ceci.getaplication (). GetController ('"nom_frôler"). Dosomething (); Code> P> P>
Si vous n'êtes pas dans le contexte de votre contrôleur (par exemple dans une fonction de rappel de certains objets), vous pouvez le faire.
MyAppName.app.getController('ControllerName').doSomething();
Lorsque vous utilisez la convention MVC à Sencha Touch 2, je recommanderais ce qui suit lorsque vous essayez d'appeler une méthode appelée «Somemethodinb» dans 'Controllerb' de l'intérieur 'Controléra': P>
myappname.app.getController ('Controllerb'). P> blockQuote>
'Myappname' est le nom de l'application que vous avez définie dans la définition de l'application principale - généralement dans votre fichier App.js. P>
Selon les forums Sencha, le ci-dessous est amorti: P>
ceci.getaplication (). GetController ('Controllerb'). Somemethodinb (); P> blockQuote>
http://www.sencha.com/forum/showthread.php?158996 p>
En fait, la seule façon que je puisse appeler la méthode "cette.getaplication ()" "" "" est à l'origine de mon fichier de définition d'application (app.js). p>