Angular 6 Router无法使用angularjs $ location服务检测网址更改

时间:2018-07-05 03:55:14

标签: javascript angularjs angular angular-hybrid

我有一个使用Angular 6和AngularJS 1.6.4的混合角度应用程序。我已经在Angular模块中定义了所有路由,并按照升级指南中的说明使用UpgradeComponent升级了AngularJS组件。

当我尝试使用$ location服务从一个AngularJS视图导航到另一个AngularJS视图时,浏览器窗口中的url被更改,但是Angular Router无法检测到URL更改,并且相同的视图仍加载在UI中。 我尝试订阅路由器事件和位置服务事件,但均未触发。

但是,当我单击其他链接时,它会导航到该链接。同样,在移动到新链接之后,当我单击浏览器的后退按钮时,它会将应用程序导航到以前无法使用的链接。 示例:

  1. 当前网址为http://localhost/#/App/View1
  2. 单击指向http://localhost/#/App/View2的链接。网址已更新,但View1仍加载在UI中。
  3. 单击指向http://localhost/#/App/View3的链接。网址已更新,并且View3已加载。
  4. 单击浏览器的后退按钮。网址已更新为View2,并且View2已加载到UI中。

如果我使用AngularJS的$ window服务而不是$ location,则一切正常。在升级到Angular 6之前,它与Angular 4一起使用。 请使用$ location服务帮助使其正常工作。

0 个答案:

没有答案