emitter.ts 613 B

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