emitter.ts 704 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. ///<reference path="../../headers/common.d.ts" />
  2. import EventEmitter from 'eventemitter3';
  3. var hasOwnProp = {}.hasOwnProperty;
  4. function createName(name) {
  5. return '$' + name;
  6. }
  7. export class Emitter {
  8. emitter: any;
  9. constructor() {
  10. this.emitter = new EventEmitter();
  11. }
  12. emit(name, data?) {
  13. this.emitter.emit(name, data);
  14. }
  15. on(name, handler, scope?) {
  16. this.emitter.on(name, handler);
  17. if (scope) {
  18. var unbind = scope.$on('$destroy', () => {
  19. this.emitter.off(name, handler);
  20. unbind();
  21. });
  22. }
  23. }
  24. removeAllListeners(evt?) {
  25. this.emitter.removeAllListeners(evt);
  26. }
  27. off(name, handler) {
  28. this.emitter.off(name, handler);
  29. }
  30. }