Bu hata, bir Field örneğinin artık geçerli model yapısına bağlı olmadığını gösterir.
Angular signal form'ları, daha önce var olan bir alan yolu artık üst nesnedeki aynı özellik olarak çözümlenemediğinde NG01902 hatasını fırlatır.
Yaygın bir tetikleyici, bir alanın değerini istemeden undefined olarak ayarlamaktır.
Signal form'larda undefined, "alan mevcut değil" anlamına gelir, bu nedenle var olan bir alan sahipsiz hale gelebilir.
Bu neden olur
Signal form'ları, alan örneklerini modelinizin şekliyle senkronize tutar. Model şekli değiştikten sonra kod hâlâ eski bir alan örneğine başvuruyorsa, Angular bu uyumsuzluğu algılar ve bu hatayı fırlatır.
Bu durum şu hallerde oluşabilir:
- model nesnesinden bir özellik kaldırıldığında
- bir özellik var olmaya devam etmek yerine
undefinedolduğunda - kod, yapısal güncellemeler arasında eskimiş bir alan başvurusunu tuttuğunda
Nasıl düzeltilir
- Model alanlarına
undefinedyazmaktan kaçının. Alan hâlâ var olması gerekiyorsanullveya başka bir açık değer kullanın. - Bir alan kullanımdayken model şeklini sabit tutun.
- Yapısal güncellemelerden sonra eskimiş başvuruları yeniden kullanmak yerine alanları geçerli form ağacından yeniden okuyun.
Model tasarımı rehberliği için undefined kullanmaktan kaçının bölümüne bakın.