2017-01-10 3 views
5

Как получить RouteParams от родительского компонента, а также дочерние маршрутыAngular2 активируются параметры маршрута и параметры родительского

export const routes: Routes = [ 
    { path: '', redirectTo: 'list', pathMatch: 'full' }, 
    { path: 'list', component: UsersComponent }, 
    { 
     path: ':id', component: UserDetailComponent, 
     children: [ 
      // { path: '', redirectTo: 'overview', pathMatch: 'full' }, 
      { path: 'overview', component: UserInfoComponent }, 
      { path: 'specs/:id', component: UserProfileComponent } 
     ] 
    } 
]; 

В компоненте

export class UserDetailComponent implements OnInit { 

constructor(private route: ActivatedRoute) { } 
    ngOnInit() { 
    this.route.parent.params.subscribe((c) => { 
     console.log(c['id']); 
    }); 
    this.route.params.subscribe(params => { 
     console.log(params['id']); 
    }); 
} 
} 

Но я всегда получаю неопределенными, когда мой маршрут активируется. любезно поможет решить эту проблему?

Заранее спасибо.

+0

Вы нашли решение? У меня такая же проблема. – brians69

+0

Еще не ищет решение –

+2

Для меня я понял, что я вызываю 'ActivatedRoute' в компоненте вне' router-outlet'. Вот почему я стал «неопределенным». Перемещение компонента внутри «маршрутизатора-розетки» решило мою проблему. – brians69

ответ

1

Вот простой пример того, как получить значение параметра в .ts, После этого вы сможете настроить это ваш случай

import { ActivatedRoute } from '@angular/router'; 

    constructor(private route: ActivatedRoute) { 
     const taskId: string = route.snapshot.params["taskId"]; 
     console.log("this is taskId value = "+ taskId); 
    }