我在我的应用程序中使用Angular 12
withPrimeNG
来实现一个custom confirm()
功能。用例如下:
当用户点击表单上的任何复选框或单选按钮时,在事件触发之前,应显示一条确认消息,询问用户是否真的想要继续。
为了实现这一点,我event.preventDefault();
首先使用阻止选择,然后如果用户在自定义确认消息上单击“是”,我想重新触发刚刚阻止的事件。下面的代码示例:
onCheckboxChange
onCheckboxChange(event: Event) {
event.preventDefault(); // prevent the default click in the first place
this.openConfirmDialog( () => {
// re-trigger event here, for example 'event.trigger();'
}, event);
}
打开确认对话框
openConfirmDialog(acceptAsync: any, event: Event) {
this.confirmationService.confirm({
message: 'Are you sure you want to make this change? Progress will be lost',
accept: () => {
//Actual logic to perform a confirmation
acceptAsync();
},
reject: () => {
event.preventDefault();
}
});
}
对于这个用例,我是否走在“正确的道路”上?我知道我可以专门为每种情况设置检查的值(如果它是复选框),例如:
this.event.currentTarget.checked = true;
或者相应地,如果它是一个单选按钮,但我想以“通用方式”实现它,有什么想法吗?
提前致谢!