如何在 SAP 电商云 Spartacus UI 里访问 CMS
2021-12-17 本文已影响0人
华山令狐冲
答案是采用 CmsComponentData 这个服务。
看个实际例子:
CmsQuickOrderComponent 的定义,维护在 models 文件夹里:
运行时,只能访问到上图新 extend 出的字段 quickOrderListLimit 的值:
我们另外找一个 Banner Component 试试。
对于 BannerComponent 来说,CmsComponentData 的数据是完整的。
这个 CmsComponentData 只是一个 abstractClass , 它的运行时实例化发生在什么时候呢?
运行时,是一个 object:
找到一个 Component Data provider:
最终答案是,SAP Spartacus 开发团队,设计了一个统一的 cms-injector.service.ts, 用于为所有 CMS Component 统一注入 CmsComponentData. 因为注入时需要编写自定义代码,所以以 useFactory 的方式注入。
更多Jerry的原创文章,尽在:"汪子熙":