好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

angular 不同组件间通过service传递数据

//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:  "服务器连接中断, 正在尝试重新连接....." 
          }) 

 

查看更多关于angular 不同组件间通过service传递数据的详细内容...

  阅读:56次