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.
- Özel bir form kontrolü tanımladıysanız, bir value accessor sağlamayı hatırladınız mı?
- Değeri olmayan veya geçersiz bir element üzerine
ngModelmi koydunuz (örn.<div [(ngModel)]="foo">)? - Bir
NgModuleiçinde tanımlanmış özel bir form kontrolü mü kullanıyorsunuz? Eğer öyleyse,NgModule'ü import ettiğinizden emin olun. - Üçüncü taraf bir özel form kontrolüyle
ngModelmü kullanıyorsunuz? Bu kontrolün bir value accessor sağlayıp sağlamadığını kontrol edin. Sağlamıyorsa, kontrolün elementindengDefaultControlkullanın. - Ö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.configureTestingModuleile yapabilirsiniz. - Nx ve Module Federation ile webpack mi kullanıyorsunuz?
webpack.config.jsdosyanız, forms paketinin paylaşıldığından emin olmak için ek yapılandırma gerektirebilir.