我刚刚更新到Angular 2.0.0-rc5,我当前页面网址的监听器似乎已被弃用。
以前我可以通过订阅以下内容来访问它:
constructor(private router: Router){
router.subscribe(url => {
if (url.instruction.routeName === 'Home'){
this.home = true;
}else{
this.home = false;
}
});
}
当我更改页面时,它会输出存储在路由器每页的“名称”字段中的内容。
我查看了Router
和ActivatedRoute
的当前版本,但没有找到我可以订阅的内容,这将显示该数据,只显示用冒号定义的参数。例如site.com/user/:15
中的'15',我想要的只是'用户'。
Router.url
将返回我正在寻找的内容但不允许我订阅该数据以了解更改何时发生。
如何访问当前路径的路径名?
答案 0 :(得分:4)
寻找router.events
并订阅。典型的事件将是NavigationEnd
,这将为您提供所需的网址信息。
router.events.subscribe(x => {
if(x instanceof NavigationEnd) {
console.log(x.url);
console.log(x.urlAfterRedirects);
}
});
请注意,还有其他类型的事件,但基本方案使用NavigationEnd
。