。如果你在浏览器中直接输入地址,而不是使用 Angular 中的路由机制进行跳转,那么 Router 的 events 属性就无法捕捉到这个事件,解决办法
时间: 2023-02-14 20:43:06 浏览: 85
angular 未登录状态拦截路由跳转的方法
如果你希望使用 Angular 中的 Router 的 events 属性来捕捉浏览器地址栏输入地址进行跳转的事件,你可以尝试使用 Angular 中的 Location 服务。
Location 服务可以帮助你在不跳转页面的情况下改变浏览器地址栏的地址,这样 Router 的 events 就可以捕捉到路由变化的事件了。
你可以这样使用 Location 服务:
1. 首先,你需要在你的组件或服务中注入 Location 服务:
```
constructor(private location: Location) {}
```
2. 然后,你就可以使用 Location 服务的 go() 方法来改变浏览器地址栏的地址:
```
this.location.go('/your/new/url');
```
这样,Router 的 events 就能捕捉到路由变化的事件了。
你也可以使用 Location 服务的 back() 方法来返回上一个路由,或者使用 forward() 方法来跳转到下一个路由。
阅读全文