是否有一种方法可以将使用InjectionToken注入的服务范围限制为Component范围,而不是在Module中提供它?
export const SomeServiceToken = new InjectionToken<SomeService>('Some Service');
...
@Component({
...
providers: [
{
provide: SomeServiceToken,
...
}
]
})
export class SomeComponent {
constructor(@Inject(SomeServiceToken) public someService: SomeService) { }
}
为此提供一些背景信息:我需要在同一页面上使用SomeComponent
几次,它反映了所有更改,因为它与模块中提供的服务相关。为了解决这个问题,我希望在可能的情况下将服务范围扩大到组件,并且仍然可以灵活地为每个模块提供不同的服务。