本文介绍了错误错误:窗体控件的无值访问器,在开关上具有未指定的名称属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我在Angular 4中的组件:
Here is my component 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>
`
} )
这是我的班级:
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;
}
}
这是我在编译时遇到的错误:
This is the error I get when compiling:
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)
当我将元素开关更改为输入时,它工作正常,并且知道我对其他组件使用了相同的结构,并且效果很好.
When I change the element switch to input it works, knowing that I'm using the same structure to other components and it works fine.
推荐答案
我通过将name="fieldName" ngDefaultControl
属性添加到带有[(ngModel)]
属性的元素中来解决此错误.
I fixed this error by adding the name="fieldName" ngDefaultControl
attributes to the element that carries the [(ngModel)]
attribute.
这篇关于错误错误:窗体控件的无值访问器,在开关上具有未指定的名称属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!