Баг связывания модели в AngularJS при автозаполнении поля password

Категория: AngularJS

Этот баг в AngularJS, заключается в том, что не обновляется модель, связанная (binding) с полем password, в случае автозаполнения (autofill) этого поля. Этому багу больше года, а фиксов все нет (под Firefox 25 точно). Причиной этому "недоразумению" есть разработчики браузеров, поскольку при автозаполнении поля password не срабатывает событие input. По этой причине и не происходит биндинг заполненного автоматически пароля на связанную с полем модель. И такое поведение присуще не только AngularJS, но и прочим JavaScript MVVM фреймворкам, у которых биндинг данных опирается на событийную модель DOM'а. Некоторые "товарищи" сразу как-бэ пофиксили этот момент, и наверное использовали самый безболезненный хак. Но разработчики гугел не оставляют пользователям AngularJS простых решений, и не добавляют фикс в ядро фреймворка. Это же фии - грязный хак!

В общем исписано по этой теме много - рас (здесь же и решение), два. Только на GitHub'е в Issue #1460 (Form model doesn't update on autocomplete) более 100 комментариев.

Единственное решение основано на таймауте, по которому биндится значение autofill поля. Либо же придется отказаться от model binding для автозаполняемых полей и ручками выдергивать значение поля при каждой необходимости. Интересно как поведет себя $watch при использовании этого грязного хака с таймаутом...

#autofill, #angularjs, #bug

категория: AngularJS