emitter.ts 597 B

1234567891011121314151617181920212223242526272829303132333435
  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. scope.$on('$destroy', () => {
  19. this.emitter.off(name, handler);
  20. });
  21. }
  22. }
  23. off(name, handler) {
  24. this.emitter.off(name, handler);
  25. }
  26. }