Używam kątowa 2 Beta 5.Dwukierunkowe wiązanie w Angular 2 z NgModel i muting bound property?
Oto mój widok:
<textarea [(ngModel)]="pendingMessage" (keydown.enter)="sendMessage()"></textarea>
A oto mój komponent:
@Component({
//...
})
export class AppComponent {
private _pendingMessage: string;
public get pendingMessage() {
return this._pendingMessage;
}
public set pendingMessage(value: string) {
this._pendingMessage = value;
}
constructor() {
this.pendingMessage = "initial stuff"; //this shows up in the text field initially
}
public sendMessage() {
console.log(this.pendingMessage); //here, pending message is indeed whatever I typed in the text field
this.pendingMessage = "blah";
//here I expected the textfield to now contain "blah", but it doesn't
}
}
Cała koncepcja tej wiążącej dwukierunkowych wydaje się działać w porządku. Kiedy wpisuję tekst w polu i wciskam Enter, widzę, że pendingMessage
jest rzeczywiście tym, co wpisałem w polu.
Jednak w wierszu poniżej, gdzie próbuję ustawić pendingMessage
na "blah"
, oczekiwałem również, że zaktualizuje pole tekstowe, aby zawierało "bla". Dlaczego tak nie jest? Czy nie jest to kwestia dwukierunkowego wiązania?
Wiem, że Angular 2 nie może w magii wiedzieć, kiedy wartości się zmieniają, ale miałem nadzieję, że zrobi brudną kontrolę po ocenie zdarzenia. Czy jest jakiś sposób, aby zrobić to automatycznie lub jakoś podnieść zmianę? Chciałbym uniknąć używania apply
.
Niestety, źle zrozumiałem pytanie :-( –
To dobrze - Dałem ci przeciwnym upvote skorygowania negatywnego jedną dałem wam wcześniej (widzę, że nie masz udokumentować nieporozumienia). –