我基于 SAP Spartacus library创建了一个自定义的Storefront实现。在其app.module.ts里,我采用自定义的MyCurrentProductService,去替换 SAP Spartacus 标准的CurrentProductService 实现:
通过AppComponent的构造函数引入OccCartAdapter的依赖:
启动应用,在解析并加载AppComponent时,检测到输入参数的CurrentProductService是通过 Angular 依赖注入提供的,因此执行getOrCreateInjectable 方法:
注意这里的token 指向class CurrentProductService:
而 CurrentProductService的实例化,发生在下图的代码位置。
其中1和2两处的token指向不一样:
第二处的token,已经指向自定义的product service了:
OccCartAdapter也可以通过同样的方式注入:
更多Jerry的原创文章,尽在:"汪子熙":