提问者:小点点

如何在Angular中检测路由变化?


我正在查找在我的AppComponent中检测路由更改。

此后,我将检查全局用户令牌,看看他是否已登录。然后我可以重定向用户,如果他没有登录。


共1个答案

匿名用户

在Angular 2中,您可以subscribe(Rx事件)到路由器实例。所以你可以做一些事情

class MyClass {
  constructor(private router: Router) {
    router.subscribe((val) => /*whatever*/)
  }
}

编辑(自RC.1起)

class MyClass {
  constructor(private router: Router) {
    router.changes.subscribe((val) => /*whatever*/)
  }
}

编辑2(自2.0.0起)

另请参见:Router.Events文档

class MyClass {
  constructor(private router: Router) {
    router.events.subscribe((val) => {
        // see also 
        console.log(val instanceof NavigationEnd) 
    });
  }
}