我有一个基于API的服务,看起来像这样
@Injectable()
export class ApiBaseService {
constructor(
private http: HttpClient,
_configuration: ConfigurationService
) {
this.apiUrl = _configuration.serverWithApiUrl;
}
}
我正在尝试将其扩展为类似于以下内容的
:@Injectable()
export class StaticTranslationService extends ApiBaseService {
private staticTranslations = new ReplaySubject(1);
constructor(
http: HttpClient,
_configuration: ConfigurationService
) {
super(http, _configuration);
this.staticTranslations.next(json);
}
}
但我收到此错误:
StaticInjectorError(AppModule)[StaticTranslationService -> ConfigurationService]:
StaticInjectorError(Platform: core)[StaticTranslationService -> ConfigurationService]:
NullInjectorError: No provider for ConfigurationService!
但是,我的app.module提供程序如下:
providers: [
ConfigurationService,
ApiBaseService,
StaticTranslationService
]
ConfigurationService可以注入到其他服务中,这些服务也可以扩展ApiBaseService并在那里工作-但它们没有自己的构造函数,这是唯一的区别。
请问有人知道这里的问题吗?
答案 0 :(得分:0)
您应该在这里创建一个抽象类ApiBaseService,然后将其扩展到其他Injectable Services中。基本服务不应标记为可注入。