angular中靜態類注入服務

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;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章