Использование привязки события (change) для вложенного углового компонента в Angular4

Мне известно, что "(изменить)" - это предварительно созданный связыватель событий для полей ввода, выбора и текстовой области. Но что это значит, когда мы используем его как привязку события к компоненту?

Вызов компонента:

<dropdown-list [items]="countrycodes" (change) = "updateCCode($event)"  > </dropdown-list>

Внутри выпадающего списка есть поле выбора, а также текстовое поле для фильтрации списка. Когда выбрано значение поля выбора, я запускаю событие emit, которое в конечном итоге запускает событие updateCCode родительского компонента.

Теперь, если я отредактирую текстовое поле и уберу фокус, оно неожиданно вызовет событие updateCCode. В конце концов, чтобы обойти эту проблему, мне пришлось изменить код на:

<dropdown-list [items]="countrycodes" (changeUpdated) = "updateCCode($event)"  > </dropdown-list>

чтобы избежать запуска события onChange по умолчанию, так как мое имя связывателя событий было "(изменить)".

Вопрос

Это правильный подход? Почему (смена) источника событий при запуске на компонент НЕ переопределяет встроенную функцию onChange? Должен ли я реализовать какой-либо прослушиватель onchange и вызвать его 'protectDefault'?

0 ответов

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