使用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组件内部获取值?
答案 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/。