Angular2 RC4路由器:从路由器获取RouteConfigs“data”属性

问题描述:

使用Angular2的新RC4-Router(3.0.0-beta.2),我有以下路由设置:Angular2 RC4路由器:从路由器获取RouteConfigs“data”属性

export const Routes: RouterConfig = [ 
    { 
     path: 'account', 
     pathMatch: 'prefix', 
     canActivate: [ 
      AppAuthGuard 
     ], 
     children: [ 
      { 
       path: 'create', 
       component: AccountRegistration, 
       data: { 
        'title': 'Create an Account' 
       } 
      }, 
      { 
       path: 'login', 
       component: AccountLogin, 
       data: { 
        'title': 'Log into your Account' 
       } 
      } 
     ] 
    } 
]; 

可以打开路线。但我有一个全局服务,它应该从路径“data”-property的“title”属性中设置AppComponent中的标题。所以我在订阅router.events-Observable:

this.router.events.subscribe(value => { 

    if (value instanceof NavigationEnd) { 

     console.log(this.router.routerState.snapshot.root.data['title']); 
    } 
} 

但是它只是无法获得标题。这是甚至可能的,我应该能够获得这样的路线信息?有人有我的例子吗?

+0

交叉引用https://github.com/angular/angular/issues/9822 –

您可以订阅data直接像

class HeroDetailComponent { 
    ngOnInit() { 
    this.sub = this.route 
     .data 
     .subscribe(v => console.log(v)); 
    } 

    ngOnDestroy() { 
    this.sub.unsubscribe(); 
    } 
} 
+2

这仅适用于布线组件,甚至没有指令。但是我需要获取服务中的当前活动路线数据(也适用于未来的功能)。我们目前正在研究一个复杂的大型SPA,如果能够在一个中心位置描述路线,这将是一件非常好的事情。 –

+0

可能。我没有深入研究新路由器。 –