Функция управления вызовом от другого контроллера/Обмен данными между контроллерами

На данный момент, когда я нахожусь в контроллере и что я хочу вызвать функцию с другого контроллера, я делаю это:

App.app.getControllerInstances()['App.controller.OtherController'].do_something();

Мне кажется немного тяжело, есть ли еще один (лучший) способ сделать это?

Спасибо

Ответ 2

Если вы не находитесь в контексте вашего контроллера (например, в функции обратного вызова какого-либо объекта), вы можете сделать это.

MyAppName.app.getController('ControllerName').doSomething();

Ответ 3

При использовании соглашения MVC в Sencha Touch 2 я рекомендую следующее при попытке вызвать метод "SomeMethodInB" в "ControllerB" изнутри "ControllerA":

MyAppName.app.getController( 'ControllerB').

'MyAppName' - это имя приложения, которое вы определили в определении основного приложения - обычно в вашем файле app.js.

В соответствии с форумами Sencha нижеследующее обесценивается:

this.getApplication() getController ( 'ControllerB') SomeMethodInB();..

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

Фактически единственный способ, с помощью которого я могу вызвать метод this.getApplication(), работать даже при вызове его из файла определения приложения (app.js).