有没有一种方法可以让我知道子组件是否被破坏。我知道ngOnDestroy生命周期挂钩,但是我的需求有所不同。
如果子组件被销毁,我希望通知父组件。
我已经知道服务可以提供帮助,也可以通过事件发出来实现。我真正想知道的是,如果存在某种方式,角度可以提供某种标志,例如该组件已损坏,或者提供一种可以关联以提取此信息的方法。
我们非常感谢您的帮助!
答案 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中,您可以找到有关此概念的完整示例。