从角度x上的事件中选择条件选项

时间:2019-01-02 18:13:03

标签: angular typescript

我有一个“选择”列表,我想在用户单击一个选项(“选项”)后启动一个动作(事件)。

我在Select元素上使用了(更改)事件,它可以工作,但是它更新了所选项目。点击选项就不会启动任何事件吗?

我要执行的操作是,如果用户单击一个选项,则我进行测试,是否正确,我允许他选择此项目,否则他将停留在当前状态。

当前代码:

<select id="myselect" (change)="verifyData($event.target.value)" formControlName="myElement">
                <option *ngFor="let items of items" [value]="item.name">{{ item.name }}</option>
            </select>

1 个答案:

答案 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