Ich erstelle ein Formular mit Angular 2 (RC.3), aber die ngForm
Direktive kann keine Standardwerte erhalten (value
Attribut).ngControl kann keine Standardwerte in Angular2 erhalten.
// app.component.html
<form (ngSubmit)="onSubmit(editForm.value)" #editForm="ngForm">
<input ngControl="firstName" type="text" value="{{user?.firstName}}">
<input ngControl="lastName" type="text" value="{{user?.lastName}}">
<input type="submit" value="Edit">
</form>
// app.component.ts
...
export class AppComponent {
public user: UserModel;
constructor(private _api: ApiService) {
// Get user data.
this._api.get('/users/self').subscribe(
(user: UserModel): void => { this.user = user; }
);
}
onSubmit(user: UserModel): void {
console.log(user);
}
}
Wenn user
Objekt der Benutzerdaten aufweist, wird input
Element ein Wert von firstName
Benutzerobjekt gesetzt hat. Wenn ich die Werte des Elements input
nicht eingabe und ändere (d. H. value
Attributwerte), hat editForm.value
keine Werte wie die folgenden.
{ firstName: null, lastName: null }
Wenn ich input
Elements Werte zu ändern, editForm.value
erkennt seine Änderungen und Werte eingestellt werden. Was soll ich tun?
Auch ich verstehe nicht, wie ngControl
und ngModel
richtig zu nutzen. Ich weiß, ngControl
bietet Validierungen und Betriebsstatus, ngModel
bietet, um Präsentation Layer-Modelle zu synchronisieren, aber ich verstehe nicht den Unterschied zwischen ngControl
und ngModel
vollständig.
Ich denke, dass wir Formularwerte mit nur ngControl
bekommen können, so ngModel
und Zwei-Wege-Bindung ist nicht erforderlich ...
https://angular.io/docs/ts/latest/guide/forms-deprecated.html, https://angular.io/docs/ts/latest/cookbook/dynamic-form-deprecated.html –