ngModelChange
Вероятно это задокументированное поведение, но я не встречал упоминаний об этом.
ngModelChange срабатывает при изменениях привязанной модели, однако заметил такую фичу:
// component validateEmail(email) { this.email_is_valid = /\w+\@\w+\.\w+/.test(email); } // view <input type="text" (ngModelChange)="validateEmail(user.email)" [(ngModel)]="user.email" /> <button [ngClass]="{'disabled' : !email_is_valid}">
При таком раскладе validateEmail вызывается до фактических изменений (т.е. принимает предыдущее состояние объекта user), если же переместить (ngModelChange) после биндинга модели, событие будет работать как ожидается.
Опубликовано
04.04.2017