2016-08-11 84 views
1

我刚刚更新到Angular 2.0.0-rc5,我的监听器当前页面的网址似乎已被弃用。Angular2 - 检索当前网址

以前我可以通过订阅以下访问:

constructor(private router: Router){ 
    router.subscribe(url => { 
    if (url.instruction.routeName === 'Home'){ 
     this.home = true; 
    }else{ 
     this.home = false; 
    } 
    }); 
} 

当我改变了它会输出什么存储在“名称”字段中路由器的每个页面的页面。

我已经通过当前版本的RouterActivatedRoute进行检查,没有找到我可以订阅的东西,这将显示数据,只有用冒号定义的参数。例如,当我想要的是'用户'时,site.com/user/:15中的'15'。

Router.url将返回我正在查找的内容,但不允许我订阅该数据以了解何时发生更改。

如何访问当前路径的路径名?

回答

3

寻找router.events并订阅。典型的事件将是NavigationEnd,这会给你你需要的网址信息。

router.events.subscribe(x => { 
      if(x instanceof NavigationEnd) { 
       console.log(x.url); 
       console.log(x.urlAfterRedirects); 
      } 
     }); 

请注意,还有其他类型的事件,但基本场景使用NavigationEnd