Saya sedang mengerjakan proyek Angular dan memiliki beberapa kesalahan saat membangun proyek. Saya menggunakan desain material. Tapi saya tidak yakin bagaimana saya bisa menyelesaikan masalah ini. Silakan lihat dan bantu saya.

Ini adalah kode komponen.

export class TestComponent {
    ...
    public createEventGroup: FormGroup

    public constructor(
        ...
    ) {
        this.createEventGroup = new FormGroup({
            eventName: new FormControl(),
            eventDescription: new FormControl(),
            eventGraphicAttachment: new FormControl(''),
            ...
        });
    }
...

Ini adalah kode HTML

<mat-form-field class="event-graphic">
  <mat-label>Event Graphic</mat-label>
  <ngx-mat-file-input placeholder="Basic Input" formControlName="eventGraphicAttachment">
  </ngx-mat-file-input>
  <mat-icon matSuffix>folder</mat-icon>
</mat-form-field>

Dan ini adalah log kesalahan

core.js:6210 ERROR Error: No value accessor for form control with name: 'eventGraphicAttachment'
    at _throwError (forms.js:1732)
    at setUpControl (forms.js:1506)
    at FormGroupDirective.addControl (forms.js:5253)
    at FormControlName._setUpControl (forms.js:5835)
    at FormControlName.ngOnChanges (forms.js:5780)
    at FormControlName.rememberChangeHistoryAndInvokeOnChangesHook (core.js:1520)
    at callHook (core.js:2583)
    at callHooks (core.js:2542)
    at executeInitAndCheckHooks (core.js:2493)
    at refreshView (core.js:9481)

enter image description here

1
user15065503 28 Mei 2021, 15:13

3 jawaban

Jawaban Terbaik

Anda harus menambahkan ngDefaultControl ke elemen yang memiliki formControlName. Jadi kodenya harus seperti ini:

<mat-form-field class="event-graphic">
  <mat-label>Event Graphic</mat-label>
  <ngx-mat-file-input placeholder="Basic Input" formControlName="eventGraphicAttachment" ngDefaultControl>
  </ngx-mat-file-input>
  <mat-icon matSuffix>folder</mat-icon>
</mat-form-field>
1
Oscar Cardoso Garcia 28 Mei 2021, 19:29

Bentuk sudut bisa sangat khusus. Apakah Anda juga menyelidiki perpustakaan yang Anda gunakan? Mungkin di mana Anda mencoba mendeklarasikan kontrol formulir tidak berakhir sebagai pengakses nilai yang valid?

0
DavidG 28 Mei 2021, 13:05

Anda seharusnya melewatkan nama kontrol formulir dari grup formulir Anda. Seharusnya terlihat seperti di bawah ini,

Untuk detail selengkapnya: https://angular.io/guide/reactive-forms# pengelompokan-bentuk-kontrol

formGroup = new FormGroup({
    eventGraphicAttachment: new FormControl('')
});
0
dinindu 28 Mei 2021, 12:25