【问题标题】:Angular4 routing parent > child : Hook that runs when navigating back to parent?Angular4路由父>子:导航回父时运行的钩子?
【发布时间】:2017-10-18 15:45:43
【问题描述】:

假设我有两个组件及其各自的路线:

  • 父组件/parent
  • 子组件/parent/child

我正在寻找一种方法来触发父级上的方法,因为路由器被告知从子视图导航到“../”。

我在寻找 Ionic 的钩子“viewDidAppear”的等价物:

  • 它尚未初始化,因为它仍在导航堆栈中
  • 它刚刚再次进入前台,应该会进行一些刷新

感谢您的关注,

【问题讨论】:

  • 您可以使用发射器,然后在父组件中对其做出反应:@Output() pleaseNavigate = new EventEmitter();然后只是 pleaseNavigate.emit('whatever');并在父级中使用 (pleaseNavigate)="foo($event)" 对其做出反应。示例:learnangular2.com/outputs
  • 你也可以使用shred服务或者使用router outlet events
  • @RahulSingh 这正是我在这个案例中所需要的!谢谢
  • 您几乎可以在任何可以注入路由器的地方订阅路由器事件,它们有 navstart / navend 事件,请参阅 angular 文档了解更多信息。

标签: angular angular4-router


【解决方案1】:

它们是父子组件还是父子路由

当它们是父子组件时,子组件的选择器在父组件的模板中定义。在这种情况下,您可以使用@Output 在父子之间进行通信。

如果它们是父子路由,那么子组件的模板会出现在父组件的路由出口中。在这种情况下,您可以使用如下代码查看路由参数:

this.route.params.subscribe(param => console.log(param));

将此添加到父组件的 ngOnInit 以开始监视事件。然后,您可以触发所需的方法,而不是像我在此处显示的那样进行记录。

【讨论】:

  • 嗨 DeborahK,谢谢它很有趣。路由器出口事件的使用更适合我的特殊情况,但您的信息在未来的日子里肯定会派上用场。
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
相关资源
最近更新 更多