У меня есть гибридное угловое приложение, использующее Angular 6 и AngularJS 1.6.4. Я определил все маршруты в модуле Angular и обновил компоненты AngularJS, используя UpgradeComponent, как указано в Руководстве по обновлению.
Когда я пытаюсь перейти от одного представления AngularJS к другому представлению AngularJS, используя службу $ location, URL-адрес в окне браузера изменяется, но Angular Router не обнаруживает изменение URL-адреса, и такое же представление остается загруженным в пользовательском интерфейсе.
Я попытался подписаться на события маршрутизатора и события службы определения местоположения, ни одно из них не запускается.
Однако, когда я нажимаю на другую ссылку, она переходит на эту ссылку. Также после перехода на новую ссылку, когда я нажимаю на кнопку «Назад» браузера, приложение перемещается по ссылке, которая ранее не работала.
Пример:
- Текущий URL-адрес http://localhost/#/App/View1
- Нажмите на ссылку http://localhost/#/App/View2. URL обновлен, но View1 все еще загружен в пользовательском интерфейсе.
- Нажмите на ссылку http://localhost/#/App/View3. URL обновлен и View3 загружен.
- Нажмите на кнопку назад браузера. URL обновляется до View2, а View2 загружается в пользовательский интерфейс.
Если я использую $ window сервис AngularJS вместо $ location, все работает. Он работал с Angular 4 до обновления до Angular 6.
Пожалуйста, помогите заставить его работать, используя $ location service.