2016-10-14 4 views
0

У меня есть структура URL, установленная в моем приложении, как это:Угловые 2 Получить маршрутизатор Параметры из прошлого Маршруты

app.com/project/:id/person/:id/task/:id

У меня есть маршрутизация работает должным образом, и я схватив идентификатор для текущего маршрута/компонент с:

this._params.snapshot.params где _params = ActivatedRoute.

Мой вопрос: как я могу получить идентификатор проекта или идентификатор человека при выполнении задачи. (Мне нужно это для панировочной штанги.)

Вопрос с бонусом: Я также попытался захватить это с помощью window.location.pathname, а затем вручную вытащить идентификаторы. Однако я не могу найти крючок жизненного цикла, который срабатывает после визуализации компонента/представления. Все те, которые я пробовал, перед тем, как сделать шаблон, или после удаления компонента (например, переход от него). Есть ли крючок жизненного цикла для этого?

Спасибо.

+0

Посмотрите на [ActivatedRouteSnapshot] (https://angular.io/docs/ ts/latest/api/router/index/ActivatedRouteSnapshot-interface.html) docs. Вы можете использовать его свойства 'parent' /' root'/'pathFromRoot'/etc для перемещения по дереву маршрутов. Где-то там должен быть идентификатор проекта (; – Sasxa

ответ

0

Вы можете получить родительский маршрут из параметров с помощью this._params.parent.params внутри детского маршрута подписываться так:

this._params 
      .params 
      .subscribe(params => { 
       this._params.parent.params 
        .subscribe(paramsParent => { 
         // Get parent route param 
         this.id = paramsParent['id']; 

         // Get child route param 
         this.childId = params['id']; 
         this.task = params['task']; 
        }); 
      }); 
Смежные вопросы