我有一个Angular服务(myService),它已注入许多组件和其他服务的构造函数中。
我希望每种用法都具有自己的myService实例,因此不共享任何数据。
我还希望使用定义了某些行为的参数来实例化myService。因此,在构造函数中使用它的每个位置,我都希望能够指定此参数。
这可能吗?
答案 0 :(得分:1)
将您的服务添加到组件的providers
中。这将为每个组件实例创建自己的服务实例。例如:
@Component({
// ...
providers: [MyService]
})
export class MyComponent {
// ...
}
您可以使用FactoryProvider指定服务参数。例:
@Component({
// ...
providers: [
{
provide: MyService,
useFactory: () => new MyService('param1') // create service with 'param1' for MyComponent instances
}
]
})
export class MyComponent {
// ...
}