Ich habe ein Array von Elementen in Eingaben mit ngModel angezeigt. Ich benutze eine ngFor-Anweisung in einem Formular mit einer grundlegenden Kontrolle (erforderlich). Die Liste wird nicht korrekt angezeigt: Sie ist immer das letzte Element des Arrays, das angezeigt wird. Wenn ich die Schnurrbart-Syntax verwende, um das Array außerhalb der Eingänge anzuzeigen, ist es in Ordnung. Wenn ich das Formular und die Kontrolle entferne, ist es in Ordnung. Sie können es hier testen: plunker. Hier ist der Code:Angular2, ngModel und Forms: Liste wird nicht korrekt angezeigt
@Component({
selector: "my-app",
providers: [],
template: "
<div>
<form [formGroup]="personControl">
<div *ngFor="let person of persons; let i = index">
index : {{i}}<br/>
label : {{person.label}}<br/>
value : {{person.value}}<br/>
<input type="text"
maxlength="30"
[id]="'label-'+person.id"
[(ngModel)]="person.label"
formControlName="personLabel"/>
<input type="text"
maxlength="30"
[id]="'value-'+person.id"
[(ngModel)]="person.value"
formControlName="personValue"/>
</div>
</form>
</div>
",
directives: [REACTIVE_FORM_DIRECTIVES]
})
export class App {
private personControl: FormGroup;
private persons : Person[];
constructor(private _formBuilder: FormBuilder) {
this.persons = PERSONS;
this.personControl = this._formBuilder.group({
personLabel : new FormControl("",
[
Validators.required
]),
personValue : new FormControl("",
[
Validators.required
])
});
}
}
export class Person {
id: number;
label: string;
value : number;
}
const PERSONS: Person[] = [
{ id: 1, label: "Person One", value : 10 },
{ id: 2, label: "Person Two", value : 20 },
{ id: 3, label: "Person Three", value : 30 }
];
Ich versuche, einen Blick in formArrayName zu haben, aber es scheint, dass es nicht mit mehreren Eingängen funktioniert und Sie können nicht ngModel verwenden. Hat jemand eine Idee?
Ich benutze Winkel 2.0.0-rc.4 und bildet 0.2.0