2016-10-11 47 views
1

我有一個根組件,並希望在其中的特殊部分內顯示路徑標題。
我可以檢測哪個路由在每個組件中處於活動狀態。
但是,我不知道如何在根組件內部完成它。在根組件中顯示路徑標題

這段代碼顯示在ChildComponent1標題罰款:

route:ActivatedRoute 
ngOnInit() { 

     this.route.data.subscribe(
      data => console.log(data) 
     ) 

    } 

如何檢測什麼是當前route`s標題和顯示它的根組件裏面?

export const routes: Routes = [ 

    {path: '', component: Component1, canActivate: [NonAuthGuard]}, 

    { 
    path: 'root', component: rootcomponent, canActivate: [AuthGuard], children: [ 
    { 
     path: 'Child1', 
     component: ChildComponent1, 
     data: { 
     title: 'Child1' 
     }, 
     canActivate: [AuthGuard], 
     canDeactivate: [CanDeactivateGuard] 
    }, 
    { 
     path: 'Child2', 
     component: ChildComponent2, 
     data: { 
     title: 'Child2' 
     }, 
     canActivate: [AuthGuard], 
     canDeactivate: [CanDeactivateGuard] 
    }, 
]} 
+0

UPD:在這裏找到答案http://stackoverflow.com/questions/38644314/changing-the-page-title-using-the-angular-2-new-router – norweny

回答

0

你可以在你的根組件注入Router然後訂閱其事件。 例子:

constructor(private router : Router) { 
    this.router.events.subscribe((event) => { 
     if(event instanceof NavigationStart) { 
      console.log(event); 
      console.log(event.url); 
     } 
    }); 
} 

你應該檢查你的事件是NavigationStartNavigationEnd實例,因爲你的事件將觸發幾個倍。

+0

我該如何訪問路由數據標題?事件對象只包含id和url。 {id:1,url:「/ url/url1」,urlAfterRedirects:「/ url/url1」} – norweny

+0

路由的數據標題是什麼意思? – micronyks

+0

我提供了我的路線數組(路線不變),它描述瞭如何在應用程序內導航。每條路線都有帶標題屬性的數據字段。 – norweny

相關問題