我有一个“选择”列表,我想在用户单击一个选项(“选项”)后启动一个动作(事件)。
我在Select元素上使用了(更改)事件,它可以工作,但是它更新了所选项目。点击选项就不会启动任何事件吗?
我要执行的操作是,如果用户单击一个选项,则我进行测试,是否正确,我允许他选择此项目,否则他将停留在当前状态。
当前代码:
<select id="myselect" (change)="verifyData($event.target.value)" formControlName="myElement">
<option *ngFor="let items of items" [value]="item.name">{{ item.name }}</option>
</select>
答案 0 :(得分:0)
您可以订阅表单控件的值更改,并在满足某些逻辑的情况下将其设置回先前的值。这应该起作用:
ngOnInit(item) {
this.oldValue = this.form.value.myElement;
this.form.get('myElement').valueChanges.subscribe((a) => {
if (a == 3) {
this.form.get('myElement').setValue(this.oldValue, { emitEvent: false });
} else {
this.oldValue = a;
}
});
}
这里是stackblitz上一个工作示例的链接 https://stackblitz.com/edit/angular-conditional-select-change?file=src%2Fapp%2Fapp.component.ts