ngModel kann nicht zum Registrieren von Formularsteuerelementen mit einer übergeordneten formGroup-Direktive verwendet werden
Nach dem Update auf RC5 wir begannen immer diese Fehlermeldung:
ngModel cannot be used to register form controls with a parent formGroup directive. Try using
formGroup's partner directive "formControlName" instead. Example:
<div [formGroup]="myGroup">
<input formControlName="firstName">
</div>
In your class:
this.myGroup = new FormGroup({
firstName: new FormControl()
});
Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:
Example:
<div [formGroup]="myGroup">
<input formControlName="firstName">
<input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">
</div>
Sieht es aus wie bei RC5 die beiden nicht mehr zusammen, aber ich konnte nicht finden, eine alternative Lösung.
Hier ist die Komponente produzieren Ausnahme:
<select class="field form-control" [formGroup]="form" [(ngModel)]="cause.id" [name]="name">
<option *ngFor="let c of causes" [value]="c.text">{{c.text}}</option>
</select>
Kommentar zu dem Problem
Hast du importieren
FormsModule
und ReactiveFormsModule
? Sicher, beide
AFAIK, die einzige vorhandene Erklärung ist die folgende: blog.Winkel-Universität.io/...
Gefunden Quelle der änderung: github.com/angular/angular/pull/10314
InformationsquelleAutor der Frage user2363245 | 2016-08-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort ist genau auf die Fehlermeldung,
Sie müssen angeben, dass es standalone ist und es daher keinen Konflikt mit der Formular-Steuerelemente:
InformationsquelleAutor der Antwort Avenir Çokaj
Weiter geht ' s mit @Avenir Çokaj Antwort
Als ein Anfänger, auch ich Verstand nicht, die Fehlermeldung klar auf den ersten.
Was die Fehlermeldung bedeutet ist, dass in Ihrem formGroup Sie haben ein element, das nicht bilanziert Ihre formControl. (Absichtlich/Versehentlich)
Wenn Sie beabsichtigen, nicht die Validierung dieser Bereich aber immer noch wollen, verwenden Sie die ngModel auf das input-element fügen Sie bitte die Flagge zu zeigen, es ist eine eigenständige Komponente, ohne die Notwendigkeit für die Validierung wie bereits von @Avenir oben.
InformationsquelleAutor der Antwort saNiks
OK, schließlich habe es funktioniert: siehe https://github.com/angular/angular/pull/10314#issuecomment-242218563
Kurz gesagt, Sie können nicht mehr verwenden
name
Attribut innerhalb einesformGroup
, und er mussformControlName
stattInformationsquelleAutor der Antwort user2363245
beim schreiben formcontrolname Winkel-2 nicht akzeptieren. Schreiben Sie formControlName . es ist zu groß-zweiten Worte.
wenn der Fehler immer noch conitnue versuchen, die Formular-Steuerelement für alle Objekt(myObject) Feld.
zwischen start
<form> </form>
zum Beispiel:<form [formGroup]="myForm" (ngSubmit)="submitForm(myForm.value)"> set form control for all input field </form>.
InformationsquelleAutor der Antwort ethemsulan
Ich brauchte, um zu wissen, warum dies geschah in einer bestimmten Komponente und nicht in irgendeiner anderen Komponente.
Das Problem war, dass ich 2 Formen in einem Bauteil und die zweite form hat sich noch nicht haben
[formGroup]
war und nicht registriert, aber da war ich noch mit dem Aufbau der Formen.Ich ging weiter und fertig schreiben beide Formen komplett ohne eine Eingabe nicht registriert, die das Problem lösen.
InformationsquelleAutor der Antwort user3284463