在Angular中,我在组件内部使用模态指令,当模态关闭时,它会发出 onHide
事件(EventEmitter) .
这个组件是一个对话框组件,它的模板定义了一个对话框,Modal Directive(下面的bsModal)使它成为模态 .
<div bsModal #modal="bs-modal" class="modal fade" role="dialog" tabindex="-1" [config]="{backdrop: 'static',keyboard:'false'}">
...
</div>
当Modal Directive发出 onHide
事件时,我需要从组件输出 close
事件 .
这是我的方式:
export class DialogComponent implements OnInit {
@ViewChild('modal') modal: ModalDirective;
@Output() close = new EventEmitter<any>(); // Component's close event emitter
...
ngAfterViewInit() {
this.modal.onHide.subscribe(() => {
this.close.emit();
});
}
...
}
有些东西告诉我_1145414_ s close
事件基于指令的 onHide
observable,这将使我免于订阅指令的 onHide
.
那更好的方法是什么?
1 回答
好吧,我认为没有比现在更好的方法 . 但是你可以把它缩短一点 .
请注意,我假设
onHide
永远不会完成,也不会出错 .另一件需要注意的事情是,您需要在组件被销毁时取消订阅 .
类似的问题:Pipe RxJS observable to existing subject