Ich habe eine (sehr) einfache Angular2-Komponente mit nichts als einem Textfeld. Ich möchte, dass jedes Mal, wenn Änderungen an diesem Feld vorgenommen werden, die Konsole den Wert des Feldes protokolliert. IE wenn jemand "ABCD" eingibt, sollte die Konsole loggen: "A", "AB", "ABC", "ABCD".Warum gibt ngModelChange den vorherigen Wert der Eingabe aus?
Ich sehe jedoch, dass die Konsole den PREVIOUS-Wert des Felds protokolliert, bevor die neue Eingabe registriert wurde. Stattdessen bekomme ich: "", "A", "AB", "ABC".
Wie kann ich es so machen, dass die Konsole den Wert des Textfelds protokolliert, nachdem das neue Zeichen eingegeben wurde?
Vielen Dank.
Mein Code so weit:
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);
}
}
was "alten Wert"? – Alex
@ AJT_82 Was jetzt gerade passiert, ist, dass console.log (this.testForm.form.value) den Wert des Formulars vor der Eingabe des neuen Zeichens protokolliert. Wenn ich gerade "ABC" eingegeben habe, loggt die Konsole nur "AB". Ich möchte, dass stattdessen "ABC" protokolliert wird, was der aktuelle Wert ist. – SemperCallide