我有一个可以通过路径到达的组件:
/parent
在该组件中,我有一个子/嵌套路由,可以通过路径到达:
/parent/child1
/parent/child2
在子/嵌套路由的组件中,我有一个按钮,用
路由回父组件 this.router.navigate(['parent']);
我想要发生的是,只要子/嵌套路由导航回父级,就只在父组件中调用一次方法。
但我现在面临的问题是,我不确定我是如何发现的。 我已经尝试过生命周期钩子,但没有一个真正帮助过我。 路由回父节点,ngOnInit不会被调用,其他生命周期钩子被调用多次。
编辑: 我知道我可以通过在返回路由之前使用子组件调用的StateService来处理这个问题,并且父级会将子语言包含在状态中,但这听起来像是一个糟糕的解决方案
答案 0 :(得分:1)
在您的组件中,您可以使用
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(路由),以便您可以看到返回的对象