Hata Ansiklopedisi

Desteklenmeyen olay hedefi

Angular global olay hedefi olarak yalnızca üç string değeri tanır: 'window', 'document' ve 'body'. Global bir olay dinleyicisi kaydederken string hedef olarak bunlardan başka bir şey geçirirseniz, Angular bunu çözümleyemez ve bu hatayı fırlatır.

Hatayı ayıklama

@HostListener veya Renderer2.listen() ile kullanılan hedef adında bir yazım hatası olup olmadığını kontrol edin. 'window' yerine 'windw' gibi küçük bir hata bunu tetiklemeye yeter:

@Component({
  selector: 'app-example',
  template: '<button>Click me</button>',
})
export class Example {
  @HostListener('windw:resize') // yazım hatası — 'window' olmalı
  onResize() {}
}

Aynı durum, Angular'ın bilmediği bir string ile Renderer2.listen()'i doğrudan çağırdığınızda da geçerlidir:

this.renderer.listen('global', 'click', handler); // 'global' desteklenmiyor

Hatayı düzeltme

Hedefi desteklenen üç stringden birine düzeltin veya string yerine gerçek bir DOM öğesi geçirin:

@Component({
  selector: 'app-example',
  template: '<button>Click me</button>',
})
export class Example {
  @HostListener('window:resize')
  onResize() {}
}
// Daha belirli bir şeyi hedeflemeniz gerektiğinde bir öğe referansı kullanın
this.renderer.listen(this.elementRef.nativeElement, 'click', handler);