Может ли компонент вызывать событие самоидентификации

У меня есть родительский компонент, который открывает новый компонент по щелчку ссылки, этот новый компонент должен иметь кнопку закрытия, которая при закрытии отправляет закрывающее сообщение родительскому объекту и уничтожает себя.

Мы можем отправить закрывающее сообщение с помощью метода ngOnDestroy, но как я могу вызвать уничтожение дочернего компонента.

<parent>
    <child></child> //child to be opened on click but close 
                    //event should be inside the child componenet
</parent>

Поправьте меня, если у меня есть какая-то концептуальная ошибка. Благодаря

Ответ 1

Если вы добавите компонент с помощью ViewContainerRef.createComponent(), как показано на Angular 2 динамических вкладках с выбранными вами компонентами, тогда компонент может уничтожить себя, когда вы передать cmpRef созданному компоненту.

В противном случае я не думаю, что есть способ. Вы можете передать значение родительскому объекту, чтобы *ngIf удалял компонент.

<child *ngIf="showChild" (close)="showChild = false"></child>
class ParentComponent {
  showChild:boolean = true;
}
class ChildComponent {
  @Output() close = new EventEmitter();

  onClose() {
    this.close.emit(null);
  }
}

Ответ 2

Не уверен в чистоте такого решения, но я использовал:

this.viewContainerRef.
        element.nativeElement.
        parentElement.
        removeChild(this.viewContainerRef.element.nativeElement);