Angular Application。根据路由中相同路径的触发器(命令或popstate)导航到不同组件

问题描述 投票:0回答:1

Angular Application-我有一个组件P,该组件的按钮带有用于访问组件C(命令触发器)的路由器路径。如果用户直接在浏览器中操作URL(popstate触发器)而不是通过组件P进行导航,我该如何导航到其他组件。

如何在相同路径但触发机制不同的情况下实现不同的行为?

angular navigation angular-ui-router
1个回答
0
投票

我得到了解决方案,当我们点击路由器链接时,我们可以检查路由器的navigationStart属性,并且可以看到导航触发器是imperative还是popstatehashChange。如果是popstate-直接从浏览器中命中。对于imperative-命中来自应用程序本身。因此,我可以在路由器链接上放置一个防护(canActivate())来检查是哪个触发器并控制URL的行为。

注意:-hashChange触发器我不太清楚它是如何发生的。 (如果有人知道有贡献)

© www.soinside.com 2019 - 2024. All rights reserved.