mit Könnte mir bitte jemand erklären, warum bei dem Versuch, ein Optionsfeld zu validieren, ohne NgFor für die Optionen funktioniert:Radiobutton Validierungsvorlage angetrieben Formen und NgFor in Angular 2
@Component({
selector: 'rio-app',
template: `
<form #myForm="ngForm">
<label>
Male:
<input type="radio" name="gender" value="Male"
ngModel required #gender="ngModel"
/>
</label>
<label>
Female:
<input type="radio" name="gender" value="Female"
ngModel required #gender="ngModel"
/>
</label>
<div [hidden]="!gender.hasError('required')">
The gender is required
</div>
</form>
`
})
export class AppComponent {}
Aber wenn ich versuche, das gleiche zu tun NgFor
mit ihm versagt:
@Component({
selector: 'rio-app',
template: `
<form #myForm="ngForm">
<label *ngFor="let gender of genders">
{{ gender }}:
<input type="radio" name="gender" [value]="gender"
ngModel required #myGender="ngModel"
/>
</label>
<div [hidden]="!myGender.hasError('required')">
The gender is required
</div>
</form>
`
})
export class AppComponent {
genders = ['Male', 'Female']
}
Ich erhalte eine Fehlermeldung in der Konsole des Browsers, der sagt:
Cannot read property 'hasError' of undefined
Irgendwelche Ideen?
Vielen Dank für Ihre ausführliche Antwort. Leider kann ich den FormBuilder in diesem Fall nicht verwenden, da ich diesen Codeabschnitt verwende, um die Prinzipien von Template-gesteuerten Formularen mit Validierung zu lehren. –