//global.service.ts
import { Injectable } from "@angular/core" import { Subject } from "rxjs" interface globalModalModel { tipMsg?: string show?: boolean duration?: number } @Injectable({ providedIn: "root" }) export class GlobalService { constructor() {} private globalModal = new Subject<any>() globalModal$ = this.globalModal.asObservable() updateGlobalModal(data: globalModalModel) { this.globalModal.next(data) } public sysTime public globalTime = new Subject<any>() globalTime$ = this.globalTime.asObservable() updateGlobalTime(data: any) { this.globalTime.next(data) this.sysTime = data } }
监听数据变化:
this.subscription_globalModal = this.GlobalService.globalModal$.subscribe( (data) => { this.tipMsg = data.tipMsg || "" this.globalMaskShow = data.show setTimeout(() => { this.globalMaskShow = false }, data.duration || 3000) } )
更新数据:
this.GlobalService.updateGlobalModal({ show: true, duration: 1000000, tipMsg: "服务器连接中断, 正在尝试重新连接....." })