2017-06-13 112 views
0

我有Angular 4.1.3應用程序與Angular 2路由器。我用下面的路線配置:Angular 2路由器。子路線在第二次沒有激活

export let ARTICLE_ROUTES: Routes = [ 
    { 
    path: 'article/:id', component: ArticleComponent, 
    children: [ 
     {path: '', component: ArticleContentComponent, pathMatch: 'full'}, 
     {path: ':detailId', component: ArticleContentComponent} 
    ] 
    } 
]; 

這裏是在ArticleComponent部分之間如何我瀏覽:

<a [routerLink]="[section.id]">{{section.title}}</a> 

當我點擊一些鏈接部分的ArticleContentComponent被激活並重新呈現。當我點擊另一個鏈接ArticleContentComponent未激活。即使它的構造函數沒有被調用。在控制檯中沒有可見的錯誤。

我試着使用編程的導航,但它也沒有爲第二次工作:

this.router.navigate([sectionId], { relativeTo: this.route}); 

請諮詢。

+0

經過深入調查研究,我發現,只有檢測路由變化的方式是訂閱路線PARAMS。即使ArticleContentComponent未被重載,路由也會推送新的值:this.route.params.map(param => param.detailId).subscribe(item => this.handleSubArticle(item)); – Sergey

回答

0

您需要申請的activatedRoute parmeters這樣

 this._activatedRoute.params.subscribe(p => this.loadMovie(p["id"]));