Sto usando angolare 2 beta 5.Associazione bidirezionale in Angular 2 con NgModel e proprietà con restrizioni mutanti?
Ecco mio punto di vista:
<textarea [(ngModel)]="pendingMessage" (keydown.enter)="sendMessage()"></textarea>
Ed ecco la mia componente:
@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
}
}
L'intero concetto di questo legame a doppio senso sembra funzionare tutto apposto. Quando digito del testo nel campo e premo invio, posso vedere che pendingMessage
è effettivamente qualunque cosa ho digitato nel campo.
Tuttavia, nella riga seguente, dove provo a impostare pendingMessage
su "blah"
, mi aspettavo anche che questo aggiornasse il campo di testo per contenere "blah". Perché non è così? Non è questo il punto delle associazioni a doppio senso?
So che Angular 2 non può sapere magicamente quando i valori cambiano, ma speravo che avrebbe fatto un controllo sporco dopo aver valutato l'evento. C'è un modo per farlo fare una cosa del genere automaticamente o in qualche modo raccogliere il cambiamento? Vorrei evitare di usare apply
.
Scusa, ho frainteso la tua domanda :-( –
Va bene - Ti ho dato un contro-upvote per rimediare quella negativa che ti ho dato in precedenza (Vedo che non si dispone di un traccia di cose incomprensibili). –