gpt4 book ai didi

angular - 如何使用工厂供应商?

转载 作者:太空狗 更新时间:2023-10-29 17:06:14 24 4
gpt4 key购买 nike

我需要将一个服务注入(inject)到 Angular 2 应用程序中的另一个服务中。

阅读我推断的文档后,最好的方法是使用 Factory Provider .但是,出现了两个问题:

1) 文档建议创建一个带有两个“代码段”的 HeroServiceProvider 类:

let heroServiceFactory = (logger: Logger, userService: UserService) => {
return new HeroService(logger, userService.user.isAuthorized);
};

export let heroServiceProvider =
{ provide: HeroService,
useFactory: heroServiceFactory,
deps: [Logger, UserService]
};

我的问题是类(class)通常应该是什么样子的?应该在哪里添加上面的代码段?

2) 应该/可以如何使用这个工厂?我明白了,它应该导入为:

import { heroServiceProvider } from './hero.service.provider';

@Component({
selector: 'my-selector',
template: `
`,
providers: [heroServiceProvider]
})

然后如何检索和访问所需的参数化服务?

最佳答案

我在 app_initalizer 上注入(inject)时遇到了同样的问题,经过长时间的搜索我找到了下面的解决方案。可能这对您的场景有帮助。

@NgModule({
imports: [ BrowserModule],
...
providers: [
{
provide: HeroService,
useFactory: heroServiceFactory,
deps: [Logger, UserService],
multi: true
}
]
})
export class AppModule {}


export function heroServiceFactory = (logger: Logger, userService: UserService) => {
return new HeroService(logger, userService.user.isAuthorized);
};

关于angular - 如何使用工厂供应商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39803876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com