首页 > 解决方案 > 具有多种方法的角度事件

问题描述

使用 ControlValueAccessor 处理自定义输入组件,无法找到有关访问输入值的最佳方式的指导。由于传递 $event 是一种可疑的做法,有没有办法在触发事件时触发两个或多个方法?

<input type='text' (input)="onChange($event.target.value); watchCity($event.target.value)" [disabled]="disabled" (onEnter)="onEnter($event)" (blur)="onTouched()"  />

也许有更好的方法从 ControlValueAccessor 组件内部获取值?

标签: javascriptangularforms

解决方案


您拥有的语法应该可以工作,但它不是很常见。

您可以调用一个调用其他两个函数的函数。

HTML

<input type='text' 
       (input)="onChange($event.target.value)" 
       [disabled]="disabled" 
       (onEnter)="onEnter($event.target.value)" 
       (blur)="onTouched()"  />

零件

  onChange(value) {
    // do whatever else
    this.watchCity(value);
  }

Stackblitz 在这里:https ://stackblitz.com/edit/angular-9wqhjp

另外,看这里:https ://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement我没有看到onEnter输入元素的事件?

你提到了一些关于 a 的事情ControlValueAccessor。你想建一个吗?如果是这样,请查看:https ://alligator.io/angular/custom-form-control/示例。


推荐阅读