Angular 6 Router не обнаруживает изменение URL-адреса с помощью службы определения местоположения angularjs $

У меня есть гибридное угловое приложение, использующее Angular 6 и AngularJS 1.6.4. Я определил все маршруты в модуле Angular и обновил компоненты AngularJS, используя UpgradeComponent, как указано в Руководстве по обновлению.

Когда я пытаюсь перейти от одного представления AngularJS к другому представлению AngularJS, используя службу $location, URL-адрес в окне браузера изменяется, но Angular Router не обнаруживает изменение URL-адреса, и такое же представление остается загруженным в пользовательском интерфейсе. Я попытался подписаться на события маршрутизатора и события службы определения местоположения, ни один не увольняет.

Однако, когда я нажимаю на другую ссылку, она переходит на эту ссылку. Также после перехода на новую ссылку, когда я нажимаю кнопку "Назад" браузера, приложение переходит к ссылке, которая ранее не работала. Пример:

  1. Текущий URL- адрес http: // localhost / # / App / View1
  2. Нажмите на ссылку на http://localhost/. URL обновлен, но View1 все еще загружен в пользовательском интерфейсе.
  3. Нажмите на ссылку на http://localhost/. URL обновлен и View3 загружен.
  4. Нажмите на кнопку назад браузера. URL обновляется до View2, а View2 загружается в пользовательском интерфейсе.

Если я использую сервис $ window AngularJS вместо $location, все работает. Он работал с Angular 4 до обновления до Angular 6. Пожалуйста, помогите заставить его работать, используя сервис $ location.

0 ответов

Другие вопросы по тегам