Hata Ansiklopedisi

Eksik value accessor

Tüm özel form kontrolleri için bir value accessor kaydetmeniz gerekir.

İşte nasıl sağlanacağına dair bir örnek:

providers: [
  {
    provide: NG_VALUE_ACCESSOR,
    useExisting: forwardRef(() => MyInputField),
    multi: true,
  },
];

Hatayı ayıklama

Yukarıda açıklandığı gibi, kontrolünüzün bir value accessor'a sahip olması bekleniyordu ancak bu eksikti. Bununla birlikte, pratikte bunun birçok farklı nedeni olabilir. İşte bu hataya yol açan bilinen bazı sorunların listesi.

  1. Özel bir form kontrolü tanımladıysanız, bir value accessor sağlamayı hatırladınız mı?
  2. Değeri olmayan veya geçersiz bir element üzerine ngModel mi koydunuz (örn. <div [(ngModel)]="foo">)?
  3. Bir NgModule içinde tanımlanmış özel bir form kontrolü mü kullanıyorsunuz? Eğer öyleyse, NgModuleimport ettiğinizden emin olun.
  4. Üçüncü taraf bir özel form kontrolüyle ngModel mü kullanıyorsunuz? Bu kontrolün bir value accessor sağlayıp sağlamadığını kontrol edin. Sağlamıyorsa, kontrolün elementinde ngDefaultControl kullanın.
  5. Özel bir form kontrolünü test mi ediyorsunuz? Test ortamınızı kontrolü tanıyacak şekilde yapılandırdığınızdan emin olun. Bunu Testbed.configureTestingModule ile yapabilirsiniz.
  6. Nx ve Module Federation ile webpack mi kullanıyorsunuz? webpack.config.js dosyanız, forms paketinin paylaşıldığından emin olmak için ek yapılandırma gerektirebilir.