यहाँ मेरे कोणीय 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>
`
} )
यहाँ मेरी कक्षा है:
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;
}
}
यह वह त्रुटि है जो मुझे संकलन करते समय मिलती है:
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)
जब मैं तत्व स्विच को इनपुट में बदलता हूं तो यह काम करता है, यह जानकर कि मैं अन्य घटकों के लिए समान संरचना का उपयोग कर रहा हूं और यह ठीक काम करता है।
ControlValueAccessor
- नियंत्रण में रहते हुए कभी भी भ्रमित न हों जब ControlValueAccessor को कोणीय रूपों में लागू किया जाए