Как принудительно запустить контроллер при нажатии на только что открытую ссылку

Когда я пытаюсь перейти по только что открытой ссылке, $routeProvider больше не запускает controller.

Пример:

  • в html-коде у меня есть несколько ссылок (динамически), например url1, url2, url3.
  • когда я нажимаю на url2, $routeProvider запускает контроллер.
  • через некоторое время, если я снова нажму на эту ссылку - контроллер не запускается (работает только для разных ссылок)

Как принудительно запустить controller при переходе по только что открытой ссылке? Или запустить код инициализации для всех ссылок по клику (но после этого перейти к целевой ссылке)?


person Aleksandr Yakushev    schedule 31.01.2017    source источник
comment
в соответствии с stackoverflow. com/questions/16150289/ , похоже, что при каждой загрузке представления контроллер действительно перезагружается   -  person phil294    schedule 31.01.2017


Ответы (2)


Используйте 1_

Из документов:

$route.reload();

Заставляет службу $route перезагрузить текущий маршрут, даже если $location не измененный.

В результате ngView создает новую область и повторно создает контроллер.

-- Справочник по API $route в AngularJS – перезагрузка

person georgeawg    schedule 31.01.2017

Можете ли вы опубликовать свой пример? В зависимости от того, как вы настроили $stateProvider, проблема может быть.

person user3236101    schedule 31.01.2017