通知子组件销毁给父组件

时间:2018-06-29 08:44:50

标签: angular

有没有一种方法可以让我知道子组件是否被破坏。我知道ngOnDestroy生命周期挂钩,但是我的需求有所不同。

如果子组件被销毁,我希望通知父组件。

我已经知道服务可以提供帮助,也可以通过事件发出来实现。我真正想知道的是,如果存在某种方式,角度可以提供某种标志,例如该组件已损坏,或者提供一种可以关联以提取此信息的方法。

我们非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

正如@Eliseo在评论部分中指出的那样,您可以使父组件绑定子组件的事件,该事件在子组件被销毁时通知父组件抛出该事件。

您可以查看以下示例,子组件提供了一个名为beingDestroyed的事件。父组件正在将一个名为childBeingDestroyed的函数绑定到事件beingDestroyed << {{1 }} >>。

父组件:

(beingDestroyed)=childBeingDestroyed()

子组件:

import { Component, Input, EventEmitter, Output, OnDestroy } from '@angular/core';


@Component({
  selector: 'parent',
  template: ` <h1>I'm a parent<h1>
              <button type="button" (click)="show=false">Click Me And I will destroy the child component!</button>
              <child *ngIf="show"
                 (beingDestroyed)=childBeingDestroyed()
              >
              </child>`,
  styles: [`h1 { font-family: Lato; }`]
})
export class ParentComponent {
  show:boolean = true;

  childBeingDestroyed(): void{
    alert("Child Being Destroyed");
  }
}

here中,您可以找到有关此概念的完整示例。