2017-09-26 55 views
1

林新手在angular4,這是我的組分:ERROR錯誤:沒有值訪問用於與開關未指定的名稱屬性表單控件

@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) 

當我在元件開關切換到輸入它的工作原理,知道林使用與其他組件相同的結構,它工作正常。

謝謝。

+0

在這裏閱讀有關'ControlValueAccessor' - [在Angular窗體中實現ControlValueAccessor時再也不會混淆](https://blog.angularindepth.com/never-again-be-confused-when-implementing-controlvalueaccessor-in-angular -forms-93b9eee9ee83) –

+0

這可能可以幫助你:https://stackoverflow.com/questions/46708080/form-control-errorerror-error-no-value-accessor-for-form-control-with-unspecif – Dinistro

回答

4

我通過將name="fieldName" ngDefaultControl屬性添加到攜帶[(ngModel)]屬性的元素來修復此錯誤。

+0

一些額外的解釋會使這個更好的答案。例如,你在哪裏找到'ngDefaultControl'的文檔? – isherwood

+0

https://stackoverflow.com/questions/46465891/what-is-ngdefaultcontrol-in-angular – Omtechguy

+0

https://alligator.io/angular/custom-form-control/ – Omtechguy

相關問題