Angular 有没有一种方法可以装饰以前提供的服务

Angular 有没有一种方法可以装饰以前提供的服务,angular,typescript,factory,inject,Angular,Typescript,Factory,Inject,我正在尝试扩展Angular库,但我的库需要其中一个服务的特定设置才能工作。我希望我能以某种方式使用decorator模式(而不是typescriptdecorator)通过工厂重新提供服务。这将涉及将先前声明的服务注入工厂,并修改现有实现或返回使用原始实现的替代版本。但是,似乎没有调用我的工厂方法 导出函数修饰的TranslateServiceFactory(TranslateService:TranslateService){ //对translateService进行更改或返回 //使用原

我正在尝试扩展Angular库,但我的库需要其中一个服务的特定设置才能工作。我希望我能以某种方式使用decorator模式(而不是typescriptdecorator)通过工厂重新提供服务。这将涉及将先前声明的服务注入工厂,并修改现有实现或返回使用原始实现的替代版本。但是,似乎没有调用我的工厂方法

导出函数修饰的TranslateServiceFactory(TranslateService:TranslateService){
//对translateService进行更改或返回
//使用原始版本的备用版本
//(即新的MyTranslateService(翻译服务))
}
@NGD模块({
导入:[TranslateModule],
供应商:[
{ 
提供:翻译服务,
useFactory:装饰的TranslateServiceFactory,

deps:[TranslateService]/根据您的代码判断,我认为您的工厂没有被调用,因为您没有在代码中的任何地方注入依赖项。仅导入包含该依赖项的模块是不够的

然而,若调用了该函数,则应该会出现一些与循环依赖项相关的错误

以下是我的尝试:

app.tokens.ts
导出类装饰服务{
静态实例:DecoratedService;
/* ... */
构造函数(){}
/* ... */
}
导出函数decoratedServiceFactory(){
console.warn(“[decorning]”);
如果(!DecoratedService.instance){
DecoratedService.instance=新DecoratedService();
}
const service=DecoratedService.instance;
/*装饰服务*/
回程服务;
}
app.module.ts
/**/
{
提供:装修服务,
useFactory:装饰服务工厂,
}
/* ... */

(向下滚动到最后一行)

根据您的代码判断,我认为您的工厂没有被调用,因为您没有在代码中的任何地方注入依赖项。仅导入包含该依赖项的模块是不够的

然而,若调用了该函数,则应该会出现一些与循环依赖项相关的错误

以下是我的尝试:

app.tokens.ts
导出类装饰服务{
静态实例:DecoratedService;
/* ... */
构造函数(){}
/* ... */
}
导出函数decoratedServiceFactory(){
console.warn(“[decorning]”);
如果(!DecoratedService.instance){
DecoratedService.instance=新DecoratedService();
}
const service=DecoratedService.instance;
/*装饰服务*/
回程服务;
}
app.module.ts
/**/
{
提供:装修服务,
useFactory:装饰服务工厂,
}
/* ... */
。 (向下滚动到最后一行)