AngularJS Route работа контроллера предыдущей страницы после перехода
Приветствую. Такой вопрос, вот есть у нас обычный ng-view. Как я понял, после каждого перехода, контроллер создается по новой, в итоге все у нас с чистого листа. А есть ли чтобы контроллер работал и дальше после перехода, пока мы его не захотим уничтожить? Т.е. были мы в роуте чата, перешли куда-нибудь, а чат и дальше принимает сообщения и добавляет их в view
Ну такая возможность сохранения работы контроллера должна быть у штук 6, не будет ли в ущерб хранить столько сервисов производительносьти? Или же есть к примеру идея просто просто сделать вкладки якобы, и при переходе на другую, предыдущую просто скрывать. Т.е у нас в теле будут все вкладки, но только скрытые тем же z-index'om. Что оптимальное?
Служба содержит только логику. А ваш контроллер будет содержать логику + отображение. То есть будет заведомо тяжелее, вы не находите? Ну а о производительности и потреблении ресурсов придётся думать в любом случае. Никто не запрещает вам предусмотреть механизм остановки службы, если она вам уже не нужна.
@lorus Спасибо. Я решил сделать единый сервис "состояния" роутов. При при каждой инициализации роута, мы будем проверять в этом сервисе состояний наличие нашего роута и если он там есть, запрашивать все данные которые нам необходимы. Т.е. когда мы первый раз инициализировали роут - он сам запросил все необходимые данные. А после того как перешли на другой роут - забиваем в этот менеджер состояний "слушатель сообщений" который будет их забивать в массив, и при последующем обращение просто вытащит их из этого сервиса и как бы эффект того что вкладка и не удалялась. Вы что-то типа этого имели ввиду?
Я не имел ввиду нечто столь общее. Если говорить о чате, то можно завести службу, которая принимает сообщения и хранит список (массив) последних. А контроллер просто отображает этот список. И не надо никаких слушателей - AngularJS самостоятельно перерисует список при получении нового сообщения и добавления его в список.