Angular事件有多种方法

时间:2019-02-18 22:52:51

标签: javascript angular forms

使用ControlValueAccessor处理自定义输入组件,无法找到有关访问输入值的最佳方法的指南。由于passing $event is a dubious practice是否可以触发事件时触发两个或多个方法?

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

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

1 个答案:

答案 0 :(得分:2)

您所拥有的语法应该可以使用,但这不是很常见。

您可以调用一个函数,同时调用其他两个函数。

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事件吗?

您提到了有关ControlValueAccessor的内容。您正在尝试建立一个吗?如果是这样,请查看以下示例:https://alligator.io/angular/custom-form-control/