Angular下要建立彈出窗,如是把程式直接寫在html內的作法雖很簡單,但却會造成該視窗(dialog)會一直保存在那,直到離該其父層元件時才會消除。 可能我們有不少時機會想要彈出一個窗後,在關閉掉時便完成釋放掉該視窗元件,這時便要用到動態建立視窗的方式來進行了。
const self = this;
const dialgFactory = this.componentFactoryResolver.resolveComponentFactory(DownloadRenameComponent);
var componentRef=this.downloadDialogContainer.createComponent( dialgFactory);
componentRef.instance.Lab=this.Lab;
let sub=componentRef.instance.DialogClose.subscribe(x=>{
if(x!==-1) {
//close
}
sub.unsubscribe();
componentRef.destroy();
});