10
votes

Fonction de contrôleur d'appel à partir d'un autre contrôleur / des données de partage entre les contrôleurs

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();


0 commentaires

3 Réponses :


30
votes

J'utiliserais la méthode getController: http: / /docs.sencha.com/touch/2-0/#!/api/ext.app.application-method-getcontroller

EG: ceci.getaplication (). GetController ('"nom_frôler"). Dosomething ();


0 commentaires

11
votes

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();


0 commentaires

7
votes

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':

myappname.app.getController ('Controllerb').

'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.

Selon les forums Sencha, le ci-dessous est amorti:

ceci.getaplication (). GetController ('Controllerb'). Somemethodinb ();

http://www.sencha.com/forum/showthread.php?158996

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).


0 commentaires