Angular 5, как поймать программное изменение value у input?
Есть angular-приложение, есть библиотека (datetimepicker), которая изменяет value у input. Проблема в том, что angular не видит таких изменений. Изменение происходит так this.element.val(newValue).trigger('change');
Модель не меняется.
Angular-событие (change) не срабатывает. Событие (blur) срабатывает, но в момент его возникновения в инпуте содержится старое значение.
При этом js-событие onchange срабатывает как надо.
В первом ангуларе эта проблема решалась простым вызовом $("selector").trigger("input");
Но теперь это не работает.
Привет! Для таких случаев можно либо отлавливать изменения в ngOnChanges, или если инпут только один, то слушать изменения через свойства А лучше стараться не использовать всякие jquery компоненты, я тоже разделяю с вами эту боль :)
И если менять его напрямую, меняя value или val(), то angular не видит это вообще никак, модель не меняется, разные (ngModelChange) и (change) не срабатывают. Срабатывает только (blur), но до того как изменилось значение в инпуте. При этом onchange срабатывает, но как его прокинуть в ангулар я не знаю