Может ли компонент вызывать событие самоидентификации
У меня есть родительский компонент, который открывает новый компонент по щелчку ссылки, этот новый компонент должен иметь кнопку закрытия, которая при закрытии отправляет закрывающее сообщение родительскому объекту и уничтожает себя.
Мы можем отправить закрывающее сообщение с помощью метода 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);