【发布时间】:2021-07-21 14:57:24
【问题描述】:
我必须确认单击接受按钮打开新确认框的框。
当我尝试调用接受方法时,它没有调用新的确认框,有什么办法可以得到吗?
下面是stackblitz供参考。
https://stackblitz.com/edit/primeng-confirmdialog-demo-stzy7i
【问题讨论】:
我必须确认单击接受按钮打开新确认框的框。
当我尝试调用接受方法时,它没有调用新的确认框,有什么办法可以得到吗?
下面是stackblitz供参考。
https://stackblitz.com/edit/primeng-confirmdialog-demo-stzy7i
【问题讨论】:
您正在尝试使用相同的引用打开确认对话框。执行accept 回调时,旧对话框仍然打开(我猜是因为动画)。
您需要为每个对话框创建不同的p-confirmDialog 以使它们完全独立(使用key 属性)。
模板:
<p-confirmDialog key="confirm1" [style]="{width: '50vw'}" [baseZIndex]="10000"></p-confirmDialog>
<p-confirmDialog key="confirm2" [style]="{width: '50vw'}" [baseZIndex]="10000"></p-confirmDialog>
<p-button (click)="confirm1()" icon="pi pi-check" label="Confirm"></p-button>
<p-button (click)="confirm2()" icon="pi pi-times" label="Delete"></p-button>
打字稿:
confirm1() {
this.confirmationService.confirm({
key: 'confirm1',
message: 'Are you sure that you want to proceed?',
header: 'Confirmation',
icon: 'pi pi-exclamation-triangle',
accept: () => {
this.confirm2();
// this.msgs = [{severity:'info', summary:'Confirmed', detail:'You have accepted'}];
},
reject: () => {
this.msgs = [
{ severity: 'info', summary: 'Rejected', detail: 'You have rejected' }
];
}
});
}
confirm2() {
this.confirmationService.confirm({
key: 'confirm2',
...everythingElse
});
}
【讨论】: