diff --git a/adev/src/content/reference/errors/NG05102.md b/adev/src/content/reference/errors/NG05102.md new file mode 100644 index 000000000000..b4f1fc0660c8 --- /dev/null +++ b/adev/src/content/reference/errors/NG05102.md @@ -0,0 +1,44 @@ +# Unsupported event target + +Angular only recognizes three string values as global event targets: `'window'`, `'document'`, and `'body'`. If you pass anything else as a string target when registering a global event listener, Angular can't resolve it and throws this error. + +## Debugging the error + +Check for a typo in the target name used with `@HostListener` or `Renderer2.listen()`. A small mistake like `'windw'` instead of `'window'` is enough to trigger this: + +```angular-ts +@Component({ + selector: 'app-example', + template: '', +}) +export class ExampleComponent { + @HostListener('windw:resize') // typo — should be 'window' + onResize() {} +} +``` + +The same applies when calling `Renderer2.listen()` directly with a string that Angular doesn't know about: + +```typescript +this.renderer.listen('global', 'click', handler); // 'global' is not supported +``` + +## Fixing the error + +Correct the target to one of the three supported strings, or pass an actual DOM element instead of a string: + +```angular-ts +@Component({ + selector: 'app-example', + template: '', +}) +export class ExampleComponent { + @HostListener('window:resize') + onResize() {} +} +``` + +```typescript +// Use an element reference when you need to target something more specific +this.renderer.listen(this.elementRef.nativeElement, 'click', handler); +``` diff --git a/goldens/public-api/platform-browser/errors.api.md b/goldens/public-api/platform-browser/errors.api.md index ead51d7ea4fe..7e3b74437a69 100644 --- a/goldens/public-api/platform-browser/errors.api.md +++ b/goldens/public-api/platform-browser/errors.api.md @@ -27,7 +27,7 @@ export const enum RuntimeErrorCode { // (undocumented) UNEXPECTED_SYNTHETIC_PROPERTY = 5105, // (undocumented) - UNSUPPORTED_EVENT_TARGET = 5102, + UNSUPPORTED_EVENT_TARGET = -5102, // (undocumented) UNSUPPORTED_ZONEJS_INSTANCE = -5000 } diff --git a/packages/platform-browser/src/errors.ts b/packages/platform-browser/src/errors.ts index 432b6382594b..ad779489f0be 100644 --- a/packages/platform-browser/src/errors.ts +++ b/packages/platform-browser/src/errors.ts @@ -17,7 +17,7 @@ export const enum RuntimeErrorCode { // misc errors (5100-5200 range) BROWSER_MODULE_ALREADY_LOADED = 5100, NO_PLUGIN_FOR_EVENT = 5101, - UNSUPPORTED_EVENT_TARGET = 5102, + UNSUPPORTED_EVENT_TARGET = -5102, TESTABILITY_NOT_FOUND = 5103, ROOT_NODE_NOT_FOUND = -5104, UNEXPECTED_SYNTHETIC_PROPERTY = 5105,