在Angular中使用InjectionToken进行组件范围服务

时间:2018-10-17 15:59:41

标签: angular dependency-injection

是否有一种方法可以将使用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几次,它反映了所有更改,因为它与模块中提供的服务相关。为了解决这个问题,我希望在可能的情况下将服务范围扩大到组件,并且仍然可以灵活地为每个模块提供不同的服务。

0 个答案:

没有答案