提问人:L. Kvri 提问时间:7/7/2021 更新时间:10/7/2022 访问量:3944
Angular PrimeNG p-confirmDialog 显示两次
Angular PrimeNG p-confirmDialog display twice
问:
当确认对话框显示两次时,情况是哪种情况? 或者从其他方面来看,当确认对话框显示两次时,原因是什么?
我有一个简单的对话框模板
<p-confirmDialog icon="fa fa-exclamation-triangle"
width="444"
[closable]="false"
key="uniqueidofdialog"
appendTo="body"
#dialogref>
<p-footer>
<button id="gemini_consentLockedByAnotherUser_btnOk"
type="button"
pButton
class="button-primary"
label="OK"
(click)="dialogref.accept()"></button>
</p-footer>
</p-confirmDialog>
private showConfirmDialog() {
this.confirmationService.confirm({
message: `Warning! blah-blah.`,
header: `Warning header`,
key: 'uniqueidofdialog',
accept: () => {
// TODO
}
});
}
当然,ComfirmationService 包含在模块的 provider 部分中,而 ComfirmDialogModule 则导入到模块的 import 部分。showConfirmDialog() 调用一次。
我错过了什么?
先谢谢你
答:
4赞
bogere goldsoft
8/11/2021
#1
当多个确认对话框具有相同的键时,通常会导致该问题。因此,请确保您的密钥对于您的对话是唯一的。我看到你已经完成了......只需仔细检查您的代码库中是否有所有现有的确认对话框
评论
0赞
Carcigenicate
9/13/2023
或者,如果您根本不使用密钥。对我来说,我必须为我的孩子添加一个键,以防止所有对话框触发,因为父对话框中的对话也没有使用键。p-confirmDialog
7赞
Flavien Volken
10/7/2022
#2
如果您没有提供任何密钥,您也可以仅为您的组件提供密钥来解决此问题ConfirmationService
@Component({
providers: [ConfirmationService], // <- inject the service at the component level.
selector: 'your-component',
styleUrls: ['./your.component.scss'],
templateUrl: './your.component.html',
})
评论