1、背景
在項目中有一些公共的靜態類,提供了一些靜態方法,有些函數依賴一些服務的狀態和函數,因此希望能將這些依賴的服務注入到公共的靜態類中,讓這些靜態類能夠直接使用。
2、解決方法
創建一箇中間件,將依賴的服務注入到這個服務中,然後在這個服務中調用靜態類的提供的方法,將注入的服務賦值給靜態類。
import { Injectable } from '@angular/core'; import { ConfigureService } from '@core/configure/configure.service'; import { AppUtil } from '@core/util/util.service'; import { Area } from '@routes/admin/api/area'; import { BusinessMapping } from '@core/util/business.mapping'; @Injectable() export class UtilImportServiceIntoStaticsClassHelper { constructor( // 依賴的服務 private config: ConfigureService, private area: Area ) { // 注入到靜態類中 AppUtil.init(config, area); BusinessMapping.init(area); } }
export class AppUtil { private static config: any; private static area: any; /** * 初始化靜態函數 */ public static init(config, area) { this.config = config; this.area = area; } }
angular中靜態類注入服務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.