2016-12-22 7 views
0

Я использую угловой 2 для определения некоторых маршрутов.Как мне получить доступ к параметрам маршрута, которые сопоставлены с родительским компонентом из дочернего компонента? (угловой 2.0)

У меня есть настройка маршрута, которая выглядит так.

const routes: Routes = [ 
    { path : ':id', component : ParentComponent, 
     children : [ 
      { path : '', redirectTo: 'metadata', pathMatch : 'full' } 
      { path : 'metadata', component : MetadataDisplayComponent }, 
      { path : 'data', component : DataDisplayComponent }  
     ] 
    } 
] 

Когда я пытаюсь получить доступ к параметру «id» внутри ParentComponent, все работает так, как ожидалось.

// ParentComponent 

ngOnInit(): void { 
    this.sub = this.route.params.subscribe(params => { 
     this.path = params['id']; 
     console.log(this.path); // logs the value of ":id" 
    }); 
} 

Однако попытки получить доступ к этому же параметру внутри дочернего компонента «DataDisplayComponent» приводит к неопределенному результату.

// DataDisplayComponent 

ngOnInit(): void { 
    this.sub = this.route.params.subscribe(params => { 
     this.path = params['id']; 
     console.log(this.path); // logs "undefined" 
    }); 
} 

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

ответ

1

Я чувствую себя глупо.

мне нужен

this.sub = this.route.parent.params.subscribe(params => { 

This ссылку, направляя меня в нужном месте. Возможный дубликат.