Вызов ф-ций контроллера из другого файла приложения
Привет всем!
Есть у меня глобальный файлик со всеми маршрутами, подключен прямо в Application.js: controllers:[ 'Routes' ], Я хочу поменять вьюху в своем приложении по изменению маршрута, это делает функция `setCurrentView` в файле MainController. Вопрос в том, как обратиться из роутера к ф-ции, которая в MainController (лежит в app\view\main\MainController.js)? Нагуглил, что можно сделать так: this.getApplication().getController('ControllerName').doSomething(); На getController вываливается ошибка, даже если я полное наименование пишу: TypeError: controller.doInit is not a function в requires при этом все прописано. Прямой вызов через `console.log(MyApp.view.main.MainController);` выдает в консоли `constructor()` и все... Как сделать правильно? |
В общем, помогли мне таки на форуме Сенчи. Причем, именно тот человек, который писал туториал, по которому я и делал свое приложение. ;)
Тема тут: https://www.sencha.com/forum/showthr...ter-controller В итоге я все делаю через fireEvent'ы, а в ViewController'ах слушаю события единственного контроллера с маршрутами. В целом, оно то удобно, только проблема с переключением активного View никуда не пропала. Например, если мы логинимся, что через widget создается View главное, ходим по роутам и меняются вьюшки... но стоит обновить страницу на каком-то роуте, получаем пустой экран... View не загружено, а роут сработал. Также при рефреше обнуляется singleton с данными авторизации, требуется весь процесс повторить заново. Есть какой человеческий пример с правильно построенными роутингом и авторизацией? :help: |
|
Часовой пояс GMT +3, время: 20:44. |