當有待處理的更改時,我想防止在外面關閉。我喜歡這樣,但沒有結果。
this.dialogRef.beforeClosed().subscribe(() => {
this.dialogRef.close(false);
//some code logic
//...
});
在disableClose上MatDialog必須留false
uj5u.com熱心網友回復:
最初,在打開對話框時,您可以將 'disableClose' 設為 true,然后在背景單擊或退出單擊時手動關閉對話框(如果沒有掛起的更改)。
this.dialog.open(DialogComponent, { disableClose: true });
dialogRef.backdropClick().subscribe( () => {
if(!pendingChanges) dialogRef.close();
// else do nothing
});
uj5u.com熱心網友回復:
根據情況,您可以最初設定disableClose為false,以便用戶可以在沒有掛起的更改時關閉它,這取決于掛起的更改是什么,例如,如果它是異步呼叫,您可以將其設定disableClose為true。
然后,您還可以將 注入MatDialogRef到組件本身并disableClose根據您的要求手動切換,如下所示:
constructor(private matDialogRef: MatDialogRef<WhateverYourDialogIsCalled>) {}
然后在異步呼叫中它可能是:
onSubmit() {
this.matDialogRef.disableClose = true;
this.myService.doSomething().subscribe(_ => {
this.matDialogRef.disableClose = false;
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378784.html
標籤:javascript 有角的 打字稿 角材料 对话
上一篇:將JSON字串轉換為JS代碼片段
