Nicht acces Control-Instanz direkt. Cannot read property '' invalid ' undefined
Kann nicht acces es in der gleichen Weise wie in Eckige docs, so zu packen, die FormGroup ersten Instanz und finden FormControl Instanz drin.. ich Frage mich, warum? Dieses Beispiel funktioniert:
<form [formGroup]="myForm" (ngSubmit)="onSubmit()">
<div class="form-group">
<label for="username">Username</label>
<input
type="text"
name="username"
class="form-control"
formControlName="username"
>
<div *ngIf="myForm.controls.username.invalid" class="alert alert-danger">
username is required
</div>
</div>
Während dies wirft Fehler (Unterschied zwischen diesen nur in *ngIf-Anweisung):
<form [formGroup]="myForm" (ngSubmit)="onSubmit()">
<div class="form-group">
<label for="username">Username</label>
<input
type="text"
name="username"
class="form-control"
formControlName="username"
>
<div *ngIf="username.invalid" class="alert alert-danger">
username is required
</div>
</div>
Cannot read property '' invalid ' undefined
form.Komponente:
import {Component} from '@angular/core';
import {FormGroup, FormControl, Validators} from '@angular/forms';
@Component({
selector: 'sign-up',
templateUrl: 'app/sign-up.component.html'
})
export class SignUpComponent {
myForm = new FormGroup({
username: new FormControl('username', Validators.required),
password: new FormControl('', Validators.required),
});
}
InformationsquelleAutor Julius Dzidzevičius | 2017-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wirft es Fehler, weil Sie nicht über eine variable namens
username
oderpassword
.Um dieses Problem zu lösen, können Sie Folgendes tun:
... oder mit
FormBuilder
:Jetzt können Sie es direkt in das template, so wie hier:
Auch, wenn Sie möchten, können Sie verwenden
[formControl]
stattformControlName
:PLUNKER
Nein, die Dokumente sind korrekt. Es gibt eine
get
Methode namensfirst
dass die Rendite derFormControl
first
.InformationsquelleAutor developer033
Können Sie lösen dieses Problem mit einem Form-Gruppe und die Festlegung der entsprechenden Getter in Ihrer Steuerung. Um dieses Ziel zu erreichen:
In der Steuerung:
1) Entfernen Sie die Formular-Steuerelement-Variablen definition und Initialisierung
2)Ändern Sie die form-Gruppe der Initialisierung zu diesem
}
3) Fügen Sie die Getter
In der Vorlage:
1) fügen Sie einen parent-div mit [formGroup]="MyForm"
2) ändern Sie [Control]="usernameCtrl" für forcontrolName=Benutzername und *ngIf="usernameCtrl.ungültig" *ngIf="username.ungültig"
3) ändern Sie die [Control]="passwordCtrl" für forcontrolName=Passwort und *ngIf="passwordCtrl.ungültig" *ngIf="Passwort.ungültig"
te.
Plunker
InformationsquelleAutor Javier Rojano
Bei mir funktioniert:
form.Komponente:
Vorlage:
InformationsquelleAutor Alexey Volynshchikov