В маршруте у меня подгружается модель, что-то типа model: function(){ return this.store.find.... В вопросе transitionToRoute у меня вызывается с URL. Это плохой вариант "It is also possible to pass a URL (a string that starts with a /). This is intended for testing and debugging purposes and should rarely be used in production code." emberjs.com/api/classes/Ember.Controller.html#meth...
Мы начинаем зависеть от URL, а не от маршрута.
А если я делаю transitionToRoute('search', {q:q}), то роутер считает что я передаю модель и не подгружает новую. И получается, что модель я обязана подгрузить в контроллере - чтобы сформировать вызов маршрута. Но для загрузки этого URL (через адресную строку) в маршруте тоже должна быть модель.
DigitalSmile: да получается God-object эти run и config. В run могут передаваться зависимости для всего модуля, для всех его функций. Мокать все ради unit-теста одного сервиса, которому даже 1% этих зависимостей не нужно...
DigitalSmile Видимо вопрос должен не так звучать. Как в Jasmine + Angular.Mock получить сервис для unit-теста таким образом, чтобы можно было замокать все зависимости этого сервиса, но не загружать весь модуль при этом (а конкретно run и config).
Сергей Протько: я некорретно выразилась наверное, я о том, что после возврата на предыдущую страницу восстанавливается скрол в то положение, с которого мы ушли. И если данные в контроллере загрузить без callback-вызовов, то скролл встает ровно в то же место, а если с callback, то в начало.
Сергей Протько: ion-content восстанавливает scroll на этапе компиляции, когда данных нет - высота блока нулевая и скролл устанавливается в ноль, может быть это как то по другому можно решить?
Да, суть именно в том, что синхронность критична - сразу после выполнения конструктора контроллера выполняются другие операции с директивами, для которых важно наличие уже загруженных данных.
@lorus , дело в том, что первый контроллер вообще никак не связан с последующей загрузкой HTML. Да, сейчас я при первой возможности (при первой загрузке любого контроллера) сохраняю ссылку на $compile в объект window, но это нарушает все на свете, думала может есть кошерный способ получения этого $compile - по сути это глобальный объект, странно, что нет такой возможности...
Пока не понимаю. каким образом получить $compile. Т.е. смотрите, получили html, получили даже ссылку на объект контроллера, но конструктор контроллера (в котом будет доступен DI $compile) выполняется ведь только после compile?
Приложение есть, контроллер тоже есть, а мне нужно загрузить еще один. Bootstrap да, но оно перегружает всю страницу, а мне бы только кусок HTML обработать.