【发布时间】:2021-12-07 21:19:52
【问题描述】:
嗨有简单的primeng单选按钮,在改变选择时,我在onClick函数上有一些逻辑,检查用户是否改变了一些字段,如果他改变了,如果他确定他想离开选择,我会显示消息单选按钮,如果他按下“取消”,我想取消 onlick 功能的所有事件并撤消他最后的选择。但是onclick的事件没有这样做,我检查了java脚本的所有功能。我现在尝试添加 HostListener,如果某个布尔字段(表示用户想要撤消的字段)它将停止即时传播。但在运行时调用的是 onclick 函数而不是 HostListener。一些想法该怎么做?
单选按钮
<p-radioButton name="treesDetailsType" [(ngModel)]="selectedType" formControlName="selectedType" (onClick)="onChangeType(type,$event)" class="treeDetails" value="{{type.id}}" label="{{type.desc}}" [disabled]="isReadOnly && type.id != data.selectedType"></p-radioButton>
点击功能
onChangeType(type, event) {
let change = this.checkChanges(type, event);
if (change) {
//HERE I WANT TO CANCEL ALL THE CHANGE AND TO LEAVE THE FUNCTION
this.clickDisallowed = true;
}
else {
switch (type.id)
.....
}
}
主机监听器
@HostListener('click', ['$event']) onClick(event) {
if (this.clickDisallowed) {
event.stopImmediatePropagation();
}
console.log(event);
}
【问题讨论】:
标签: javascript angular angular8 primeng