angular中基类使用了依赖注入,在所有子类继承时都要注入 一旦基类变更 后期不好调整

首先感谢 https://segmentfault.com/q/1010000010668240 解决方案是从这篇文章找到的

之前做一个项目 是类似erp系统的网站版 所以做了一个单据的基类  之前做的时候 不了解angular注入的这部分

导致后期要增加注入服务的时候 所有的子类都需要改 很不好调整  在网上找到了解决方案 如下:  

解决方案:

使用Injector,然后子类只需要注入一个Injector并传给基类就可以了,基类需要的其他注入通过Injector进行
基类注入的类型使用protected描述符,这样子类也可以直接调用
基类
abstract class BaseService {
protected http: Http;
protected router: Router;
constructor (private baseInjector: Injector) {
this.http = this.baseInjector.get(Http);
this.router = this.baseInjector.get(Router);
}
// ...
}
子类
@Injectable()
export class AreaService extends BaseService {
constructor(private injector: Injector) {
super(injector);
}
}

猜你喜欢

转载自www.cnblogs.com/zenglh/p/10925831.html