答案是采用 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的原创文章,尽在:"汪子熙":
网友评论