Angular Application-我有一个组件P,该组件的按钮带有用于访问组件C(命令触发器)的路由器路径。如果用户直接在浏览器中操作URL(popstate触发器)而不是通过组件P进行导航,我该如何导航到其他组件。
如何在相同路径但触发机制不同的情况下实现不同的行为?
我得到了解决方案,当我们点击路由器链接时,我们可以检查路由器的navigationStart属性,并且可以看到导航触发器是imperative还是popstate或hashChange。如果是popstate-直接从浏览器中命中。对于imperative-命中来自应用程序本身。因此,我可以在路由器链接上放置一个防护(canActivate())来检查是哪个触发器并控制URL的行为。
注意:-hashChange触发器我不太清楚它是如何发生的。 (如果有人知道有贡献)