Hata Ansiklopedisi

formControlName için eksik kontrol

Şablondaki bir formControlName, FormGroup'un sahip olmadığı bir kontrole işaret eder. Direktif, kontrolü yoluna göre arar ve hiçbir şey bulamaz.

Bu durum, şablon ve form grubu aynı veriden oluşturulduğunda ancak farklı filtreler kullandığında ortaya çıkabilir. Bir öğe şablonda render edilir ancak form grubunda ona hiç kontrol verilmemiştir; bu yüzden formControlName'in bağlanacağı bir şey yoktur.

@Component({
  template: `
    <form [formGroup]="form">
      <ng-container formGroupName="options">
        @for (id of visibleIds; track id) {
          <input [formControlName]="id" />
        }
      </ng-container>
    </form>
  `,
})
class App {
  // Şablon her iki id için de bir input render eder...
  visibleIds = [1, 2];
  // ...ancak form grubunda yalnızca id 1 için bir kontrol vardır.
  form = new FormGroup({
    options: new FormGroup({
      1: new FormControl(''),
    }),
  });
}

Hatayı ayıklama

Hata mesajı, o düzeyde bulunan kontrolleri listeler, örneğin:

Cannot find control with path: 'options -> 2'. Controls that do exist at this level: 1.

Bunu şablonunuzun bağlandığı adlarla karşılaştırın. Ardından ya eksik kontrolü FormGroup'a ekleyin ya da kontrolü olmayan öğe için formControlName render etmeyi bırakın.