Skip to content

Instantly share code, notes, and snippets.

@TheLarkInn
Created April 24, 2016 14:52
Show Gist options
  • Save TheLarkInn/2fd731742536444f4d2a92e3ef0b7bfa to your computer and use it in GitHub Desktop.
Save TheLarkInn/2fd731742536444f4d2a92e3ef0b7bfa to your computer and use it in GitHub Desktop.
A closer look at event_managers method for searching though its plugins to find valid eventplugins using the implemented supports() function.
addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {
var plugin = this._findPluginFor(eventName);
return plugin.addEventListener(element, eventName, handler);
}
addGlobalEventListener(target: string, eventName: string, handler: Function): Function {
var plugin = this._findPluginFor(eventName);
return plugin.addGlobalEventListener(target, eventName, handler);
}
getZone(): NgZone { return this._zone; }
/** @internal */
_findPluginFor(eventName: string): EventManagerPlugin {
var plugins = this._plugins;
for (var i = 0; i < plugins.length; i++) {
var plugin = plugins[i];
if (plugin.supports(eventName)) {
return plugin;
}
}
throw new BaseException(`No event manager plugin found for event ${eventName}`);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment