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中静态类注入服务
最新推荐文章于 2022-06-23 10:23:44 发布