У меня есть (очень) простой компонент Angular2 без ничего, кроме текстового поля. Я хочу, чтобы каждый раз, когда в это поле были внесены какие-либо изменения, консоль регистрирует значение поля. IE, если кто-то набирает «ABCD», консоль должна регистрировать: «A», «AB», «ABC», «ABCD».Почему ngModelChange испускает предыдущее значение ввода?
Однако я вижу, что консоль регистрирует ПРЕДЫДУЩИЕ значения поля до того, как был зарегистрирован новый вход. Поэтому вместо этого я получаю: «», «A», «AB», «ABC».
Как это сделать, чтобы консоль регистрировала значение текстового поля ПОСЛЕ ввода нового символа?
спасибо.
Мой код до сих пор:
import { Component, OnInit, ViewChild, EventEmitter, Output } from '@angular/core';
import { NgForm } from '@angular/forms';
@Component({
selector: 'modal-test-form',
template: `
<form>
<input name="data" placeholder="Type something" ngModel (ngModelChange)="onTextChange()"/>
</form>
`,
//templateUrl: './modal-test-form.component.html',
styleUrls: ['./modal-test-form.component.css']
})
export class ModalTestFormComponent{
@ViewChild(NgForm) testForm : NgForm;
constructor() { }
onTextChange() {
console.log(this.testForm.form.value);
}
}
, что "старое значение"? – Alex
@ AJT_82 Итак, что происходит прямо сейчас, это то, что console.log (this.testForm.form.value) регистрирует значение формы до того, как был введен новый символ. Поэтому, если я только что ввел «ABC», консоль будет записывать только «AB». Я хочу, чтобы он вместо этого записывал «ABC», который является текущим значением. – SemperCallide