Угловые события с несколькими методами

Работаю над пользовательским компонентом ввода с помощью ControlValueAccessor и не могу найти рекомендации по наилучшему способу доступа к входному значению. Поскольку передача $event — сомнительная практика есть способ вызвать два или более метода при запуске события?

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

Может быть, есть лучший способ получить значение внутри компонента ControlValueAccessor?

Сразу отмечу: прохождение $event, как правило, не вызывает сомнений. В их примере это сомнительно, потому что в методе обработки событий они обращаются к event.target, и поэтому этот метод знает слишком много тонкостей шаблона.

J.P. ten Berge 19.02.2019 00:28

Я соответствующим образом скорректировал свой ответ.

DeborahK 19.02.2019 00:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
859
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Синтаксис, который у вас есть, должен работать, но он не очень распространен.

Вы можете вызвать одну функцию, которая вызывает обе другие.

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/ для примера.

Спасибо за ваш замечательный комментарий! Да, делегирование значения из одного метода было для меня ключевым. Еще раз спасибо.

Ben Racicot 19.02.2019 01:04

Другие вопросы по теме