UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

48 lines (42 loc) 1.02 kB
import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; /* modal的事件枚举 */ const enum modalEvent { onShow, onShown, onHide, onHidden, onOk, onCancel, onDestroy } @Injectable() /* tslint:disable-next-line:no-any */ export class NzModalSubject extends Subject<any> { modalId: string; eventsQueue = {}; /* tslint:disable-next-line:no-any */ destroy(type: any = 'onCancel'): void { if (!this.isStopped && !this.closed) { this.next(type); } } on(eventType: string, cb: () => void): void { if (this.eventsQueue[ eventType ]) { this.eventsQueue[ eventType ].push(cb); } else { this.eventsQueue[ eventType ] = [ cb ]; } } constructor() { super(); this.subscribe((value: string) => { const eventQueue: Array<() => void> = this.eventsQueue[ value ] || []; eventQueue.forEach(cb => { if (cb) { cb(); } }); }); } }