Angular как определить, что дочерний / вложенный маршрут возвращен родителю - PullRequest
0 голосов
/ 13 июня 2018

У меня есть компонент, к которому можно добраться по пути:

/parent

В этом компоненте у меня есть дочерние / вложенные маршруты, по которым можно добраться по пути:

/parent/child1
/parent/child2

В компонентах дочерних / вложенных маршрутов у меня есть кнопка, которая направляет обратно к родительскому компоненту с помощью

  this.router.navigate(['parent']);

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

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

РЕДАКТИРОВАТЬ: я знаю, что я мог бы справиться с этим, имея StateService, который дочерние компоненты вызывают до маршрутизации обратнои родитель подпишется на государство, но для меня это звучит как плохое решение

1 Ответ

0 голосов
/ 13 июня 2018

В вашем компоненте вы можете использовать

import { Router } from '@angular/router'

constructor(private router: Router){}

this.router.events.subscribe(route => {
   //here you have different event types
   //NavigationStart tells you the route you come from
   //NavigationEnd tells you the route you are reaching
})

Таким образом, вы можете проверить, легко ли вы возвращаетесь к родителю.Создайте console.log (route), чтобы вы могли видеть возвращаемый объект

...