Ini komponen saya di 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>
`
} )
Ini kelas saya:
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;
}
}
Ini adalah kesalahan yang saya dapatkan saat menyusun:
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)
Ketika saya mengubah sakelar elemen menjadi input, itu berfungsi, mengetahui bahwa saya menggunakan struktur yang sama ke komponen lain dan berfungsi dengan baik.
angular
form-control
Menuntut
sumber
sumber
ControlValueAccessor
- Jangan pernah bingung lagi saat mengimplementasikan ControlValueAccessor dalam bentuk AngularJawaban:
Saya memperbaiki kesalahan ini dengan menambahkan
name="fieldName" ngDefaultControl
atribut ke elemen yang membawa[(ngModel)]
atribut tersebut.sumber
ngDefaultControl
, misalnya?name="fieldname"
tidak perlu, tetapingDefaultControl
menyembuhkan masalah.Saya memiliki masalah yang sama dan masalahnya adalah komponen anak saya memiliki
@input
namaformControl
.Jadi saya hanya perlu mengubah dari:
untuk:
ts:
sumber
Saya juga menerima kesalahan ini saat menulis komponen kontrol formulir kustom di Angular 7. Namun, tidak ada jawaban yang berlaku untuk Angular 7.
Dalam kasus saya, berikut ini perlu ditambahkan ke
@Component
dekorator:Ini adalah kasus "Saya tidak tahu mengapa ini berhasil, tetapi berhasil." Kapur hingga desain / implementasi yang buruk pada bagian Angular.
sumber
Saya juga mengalami kesalahan yang sama, sudut 7
Saya baru saja menambahkan ngDefaultControl
sumber
Saya mengalami kesalahan yang sama- Saya tidak sengaja mengikat [(ngModel)] ke saya
mat-form-field
alih - alihinput
elemen.sumber
Saya mendapatkan pesan kesalahan ini dalam tes Unit saya dengan Jasmine. Saya menambahkan atribut ngDefaultControl ke elemen khusus (dalam kasus saya itu adalah sakelar geser material sudut) dan ini menyelesaikan kesalahan.
Ubah elemen di atas untuk menyertakan atribut ngDefaultControl
sumber
Dalam kasus saya, saya telah memasukkan [(ngModel)] pada label daripada input. Ada juga peringatan, saya mencoba menjalankan dengan benar kesalahan di atas pada baris yang ditentukan tetapi kesalahan tidak mau pergi. Jika ada tempat lain di mana Anda telah melakukan kesalahan yang sama, Anda tetap mendapatkan kesalahan yang sama di baris yang sama
sumber
Saya menghadapi kesalahan ini saat menjalankan kasus Karma Unit Test Menambahkan MatSelectModule dalam impor memperbaiki masalah
sumber
Ini agak bodoh, tapi saya mendapat pesan kesalahan ini dengan tidak sengaja menggunakan,
[formControl]
bukan[formGroup]
. Lihat disini:SALAH
@Component({ selector: 'app-application-purpose', template: ` <div [formControl]="formGroup"> <!-- '[formControl]' IS THE WRONG ATTRIBUTE --> <input formControlName="formGroupProperty" /> </div> ` }) export class MyComponent implements OnInit { formGroup: FormGroup constructor( private formBuilder: FormBuilder ) { } ngOnInit() { this.formGroup = this.formBuilder.group({ formGroupProperty: '' }) } }
BAIK
@Component({ selector: 'app-application-purpose', template: ` <div [formGroup]="formGroup"> <!-- '[formGroup]' IS THE RIGHT ATTRIBUTE --> <input formControlName="formGroupProperty" /> </div> ` }) export class MyComponent implements OnInit { formGroup: FormGroup constructor( private formBuilder: FormBuilder ) { } ngOnInit() { this.formGroup = this.formBuilder.group({ formGroupProperty: '' }) } }
sumber
Dalam kasus saya, saya menggunakan direktif, tetapi belum mengimpornya di file module.ts saya. Impor memperbaikinya.
sumber
ng serve
untuk menyegarkan imporSaya mengalami kesalahan yang sama, saya memiliki bidang masukan yang dinamai
control
di Komponen Formulir kustom saya tetapi secara tidak sengaja melewati kontrol dalam masukan bernamaformControl
. Semoga tidak ada yang menghadapi masalah itu.sumber
Dalam kasus saya, itu sama bodohnya dengan mendaftarkan komponen baru untuk DI dalam
app.module.ts
deklarasi saya tetapi tidak dalam ekspor.sumber
Dalam kasus saya, ini terjadi di modul bersama saya dan saya harus menambahkan yang berikut ini ke @NgModule:
Menghabiskan banyak waktu untuk membuatnya berhasil. Semoga ini membantu beberapa orang lain yang berjuang dengan kesalahan seperti itu.
sumber
Saya mengalami kesalahan yang sama, tetapi dalam kasus saya ternyata itu adalah masalah sinkronisasi, pada saat membuat komponen html.
Saya mengikuti beberapa solusi yang diusulkan di halaman ini tetapi salah satu dari mereka berhasil untuk saya, setidaknya tidak sepenuhnya.
Apa yang sebenarnya memecahkan kesalahan saya adalah menulis potongan kode di bawah ini di dalam tag html ayah dari elemen.
Saya mengikat variabel.
Kode:
Kesalahan ini disebabkan, tampaknya oleh proyek yang mencoba merender laman, ternyata pada saat mengevaluasi variabel, proyek tidak dapat menemukan nilainya. Dengan potongan kode di atas Anda memastikan bahwa sebelum merender halaman Anda menanyakan apakah variabel telah diinisialisasi.
Ini adalah kode component.ts saya:
Ini markup html saya:
Semoga bermanfaat.
sumber
Sudahkah Anda mencoba memindahkan Anda
[(ngModel)]
kediv
bukanswitch
di HTML Anda? Saya memiliki kesalahan yang sama muncul di kode saya dan itu karena saya mengikat model ke a,<mat-option>
bukan a<mat-select>
. Meskipun saya tidak menggunakan kontrol bentuk.sumber
Dalam kasus saya itu adalah komponen. Anggota yang tidak ada misalnya
Menambahkannya ke deklarasi kelas memperbaikinya
sumber
Dalam kasus saya, kesalahan dipicu dengan menduplikasi impor komponen dalam modul.
sumber
#Latar Belakang
Dalam kasus saya, kesalahan dipicu oleh perubahan tag elemen dari menjadi karena kesalahan. Di dalam <TextView an [(ngModel)] = "name". telah ditentukan.
Setelah menghapus [(ngModel)] = kesalahan "nama" hilang.
sumber
dalam kasus saya, saya memiliki
<TEXTAREA>
tag dari html lama saat mengonversi ke sudut. Harus berubah menjadi<textarea>
.sumber