天天看点

SAP Spartacus 标准的 Effects 实现的注入原理

先研究标准的 effect 为何可以被 call 到:在 ProductReviewsEffects 构造函数里设置断点:

SAP Spartacus 标准的 Effects 实现的注入原理
发现在访问首页时,断点即触发。
SAP Spartacus 标准的 Effects 实现的注入原理
为什么 AppModule 启动时,就要加载 ProductReviewEffect?
SAP Spartacus 标准的 Effects 实现的注入原理
单击 AppModule,就跳转到我自定义的 AppModule 文件了,但是该文件里并没有 ProductReviewEffect:
SAP Spartacus 标准的 Effects 实现的注入原理
这个 EffectFeatureModule 是标准框架的实现:
SAP Spartacus 标准的 Effects 实现的注入原理
Spartacus 所有标准的 Effects 实例,都是在下列代码 ngrx-effects.js 里实例化的:
SAP Spartacus 标准的 Effects 实现的注入原理
SAP Spartacus 标准的 Effects 实现的注入原理
问题就是,对于 AppModule 而言,这些 Effects 是从哪里解析出来的?
SAP Spartacus 标准的 Effects 实现的注入原理
看一下标准的 Effects 是怎么做的?
SAP Spartacus 标准的 Effects 实现的注入原理
SAP Spartacus 标准的 Effects 实现的注入原理

解决方案

SAP Spartacus 标准的 Effects 实现的注入原理

最后,生效了:

SAP Spartacus 标准的 Effects 实现的注入原理

继续阅读