【发布时间】:2018-10-18 06:51:47
【问题描述】:
我正在尝试对我拥有的某些服务进行某种继承。 我真的不知道这是否是一个好习惯,无论如何我真的很想重构所有的整个应用程序以获得新的方法。
不管怎样,这就是我所拥有的
...............................
@Injectable()
export class ApiBaseService {
...............................
constructor(url : string, _logger : LoggerService) {
...............................
}
...............................
还有一个子类
...............................
@Injectable()
export class ApiWhatEverService extends ApiBaseService {
constructor(private _http: Http) {
super(environment.apiUrl);
}
...............................
}
这里的重点是LoggerService相关的DI导致构造函数不匹配
所以我的想法是尝试以任何其他方式注入 LoggerService,例如使用 Angular 注入器,但它失败了
...............................
@Injectable()
export class ApiBaseService {
apiUrl;
_logger : LoggerService;
...............................
constructor(url : string) {
...............................
let injector = ReflectiveInjector.resolveAndCreate([
LoggerService
]);
this._logger = injector.get(LoggerService);
//IT DOESN'T GET ALL THE METHOD ASSOCIATED TO LoggerService
...............................
}
...............................
}
如果有人可以帮助或指导我,我将不胜感激。
在此先感谢
【问题讨论】:
标签: javascript angular typescript dependency-injection angular5