且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据

更新时间:2022-06-12 09:37:58

答案是采用 CmsComponentData 这个服务。


看个实际例子:

如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据



CmsQuickOrderComponent 的定义,维护在 models 文件夹里:

如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据


运行时,只能访问到上图新 extend 出的字段 quickOrderListLimit 的值:

如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据



我们另外找一个 Banner Component 试试。

如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据





对于 BannerComponent 来说,CmsComponentData 的数据是完整的。


这个 CmsComponentData 只是一个 abstractClass , 它的运行时实例化发生在什么时候呢?



运行时,是一个 object:


如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据

找到一个 Component Data provider:

如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据


最终答案是,SAP Spartacus 开发团队,设计了一个统一的 cms-injector.service.ts, 用于为所有 CMS Component 统一注入 CmsComponentData. 因为注入时需要编写自定义代码,所以以 useFactory 的方式注入。


444