ERROR Fehler: Kein Wertzugriffsfaktor für Formularsteuerelement mit nicht spezifiziertem Namensattribut auf Schalter
Hier ist meine Komponente in Angular 4:
@Component( {
selector: 'input-extra-field',
template: `
<div class="form-group" [formGroup]="formGroup" >
<switch [attr.title]="field.etiquette"
[attr.value]="field.valeur" [(ngModel)]="field.valeur"
[formControl]="fieldControl" [attr.id]="name" [attr.disabled]="disabled">
</switch>
<error-messages [control]="name"></error-messages>
</div>
`
} )
Hier ist meine Klasse:
export class SwitchExtraField extends ExtraField {
@Input() field: ExtraFormField;
@Input() entity: { fields: Object };
@Input() formGroup: FormGroup;
constructor( formDir: NgForm ) {
super( null, null, formDir );
}
get disabled(): string {
if ( this.field && !!this.field.saisissable && !this.field.saisissable ) {
return 'disabled';
}
return null;
}
}
Dies ist die Fehlermeldung, die ich beim Kompilieren erhalte:
ERROR Error: No value accessor for form control with unspecified name attribute
at _throwError (forms.es5.js:1918)
at setUpControl (forms.es5.js:1828)
at FormControlDirective.webpackJsonp.../../../forms/@angular/forms.es5.js.FormControlDirective.ngOnChanges (forms.es5.js:4617)
Wenn ich das Element Schalter auf Eingabe ändern es funktioniert, zu wissen, dass ich die gleiche Struktur zu anderen Komponenten und es funktioniert gut.
36
3
Ich habe diesen Fehler behoben, indem ich die Attribute
name="fieldName" ngDefaultControl
zu dem Element hinzugefügt habe, das das Attribut[(ngModel)]
trägt.Ich hatte das gleiche Problem, und das Problem war, dass meine untergeordnete Komponente ein "@input" namens "formControl" hatte.
Also brauchte ich nur von zu ändern:
zu:
ts:
Das ist zwar etwas blöd, aber ich habe diese Fehlermeldung bekommen, weil ich versehentlich
[formControl]
statt[formGroup]
verwendet habe. Siehe hier:WRONG
RICHTIG