diff --git a/adev/src/content/reference/errors/NG05101.md b/adev/src/content/reference/errors/NG05101.md new file mode 100644 index 000000000000..1459c4ecb4b8 --- /dev/null +++ b/adev/src/content/reference/errors/NG05101.md @@ -0,0 +1,26 @@ +# No event manager plugin found for event + +This error occurs when Angular tries to set up a listener for an event but none of the registered event manager plugins recognizes the event name. + +## Debugging the error + +The error message includes the unrecognized event name, which is usually enough to spot the problem. The most common cause is a typo in the event binding: + +```html + + + + + +``` + +If the event name is intentional and belongs to a third-party plugin (for example, a Hammer.js gesture event), make sure the plugin is provided via the `EVENT_MANAGER_PLUGINS` token: + +```typescript +import {ApplicationConfig} from '@angular/core'; +import {EVENT_MANAGER_PLUGINS} from '@angular/platform-browser'; + +export const appConfig: ApplicationConfig = { + providers: [{provide: EVENT_MANAGER_PLUGINS, useClass: MyCustomPlugin, multi: true}], +}; +``` diff --git a/goldens/public-api/platform-browser/errors.api.md b/goldens/public-api/platform-browser/errors.api.md index ead51d7ea4fe..8980f5fff998 100644 --- a/goldens/public-api/platform-browser/errors.api.md +++ b/goldens/public-api/platform-browser/errors.api.md @@ -13,7 +13,7 @@ export const enum RuntimeErrorCode { // (undocumented) HYDRATION_CONFLICTING_FEATURES = 5001, // (undocumented) - NO_PLUGIN_FOR_EVENT = 5101, + NO_PLUGIN_FOR_EVENT = -5101, // (undocumented) ROOT_NODE_NOT_FOUND = -5104, // (undocumented) diff --git a/packages/platform-browser/src/errors.ts b/packages/platform-browser/src/errors.ts index 432b6382594b..b186fe009feb 100644 --- a/packages/platform-browser/src/errors.ts +++ b/packages/platform-browser/src/errors.ts @@ -16,7 +16,7 @@ export const enum RuntimeErrorCode { // misc errors (5100-5200 range) BROWSER_MODULE_ALREADY_LOADED = 5100, - NO_PLUGIN_FOR_EVENT = 5101, + NO_PLUGIN_FOR_EVENT = -5101, UNSUPPORTED_EVENT_TARGET = 5102, TESTABILITY_NOT_FOUND = 5103, ROOT_NODE_NOT_FOUND = -5104, diff --git a/packages/platform-browser/test/dom/events/event_manager_spec.ts b/packages/platform-browser/test/dom/events/event_manager_spec.ts index cbf0b2e70095..bfb8f2d1c7f3 100644 --- a/packages/platform-browser/test/dom/events/event_manager_spec.ts +++ b/packages/platform-browser/test/dom/events/event_manager_spec.ts @@ -60,7 +60,7 @@ import type {} from 'zone.js'; const plugin = new FakeEventManagerPlugin(doc, ['dblclick']); const manager = new EventManager([plugin], new FakeNgZone()); expect(() => manager.addEventListener(element, 'click', null!)).toThrowError( - 'NG05101: No event manager plugin found for event click', + 'NG05101: No event manager plugin found for event click. Find more at https://next.angular.dev/errors/NG05101', ); });