Работаю над пользовательским компонентом ввода с помощью ControlValueAccessor и не могу найти рекомендации по наилучшему способу доступа к входному значению. Поскольку передача $event — сомнительная практика есть способ вызвать два или более метода при запуске события?
<input type='text' (input) = "onChange($event.target.value); watchCity($event.target.value)" [disabled] = "disabled" (onEnter) = "onEnter($event)" (blur) = "onTouched()" />
Может быть, есть лучший способ получить значение внутри компонента ControlValueAccessor?
Я соответствующим образом скорректировал свой ответ.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Синтаксис, который у вас есть, должен работать, но он не очень распространен.
Вы можете вызвать одну функцию, которая вызывает обе другие.
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/ для примера.
Спасибо за ваш замечательный комментарий! Да, делегирование значения из одного метода было для меня ключевым. Еще раз спасибо.
Сразу отмечу: прохождение
$event, как правило, не вызывает сомнений. В их примере это сомнительно, потому что в методе обработки событий они обращаются кevent.target, и поэтому этот метод знает слишком много тонкостей шаблона.