答案是采用 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的原创文章,尽在:“汪子熙”:

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

  1. 如何在 SAP 电商云 Spartacus UI 里新建一个页面

    因为 SAP Spartacus UI 是基于 CMS 驱动的,因此流程是:我们首先在 SAP Commerce Cloud Backoffice 创建新的 content page, CMS Com ...

  2. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改

    我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...

  3. 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合

    先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...

  4. 如何在 SAP 电商云 Spartacus UI 中创建新的页面

    Spartacus 中的页面基于使用相关 API 从 SAP Commerce 后端获取的 CMS 页面.来自 SAP Commerce 端的数据定义了元数据,如 url.标题等,以及页面的结构.结构 ...

  5. SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数

    为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...

  6. 如何在 SAP 电商云 Spartacus UI 首页的产品展示里显示视频

    Spartacus UI 的 banner Component 显示的图片,最终是通过一个 selector 为 cx-media 的 Component 实现的.路径为 projects\store ...

  7. 在 SAP 电商云 Spartacus UI 里使用自定义配置控制 UI 调试的开关

    在 page-slot.module.ts 里,定义一个配置对象 ConfigUIDebug. 这个配置对象定义在 cms-component-data.ts 的 ConfigUIDebug 对象里, ...

  8. SAP 电商云 Spartacus UI 里的 InjectionToken 应用场景

    看个具体的例子: InjectionToken 构造函数,需要传一个类型参数进去. 这个 ActionReducerMap 的定义很讲究: export declare type ActionRedu ...

  9. 如何在 SAP 电商云 Spartacus 代码里获取 Routes 路由信息

    使用如下代码: export class AppModule {constructor(private router: Router,protected injector: Injector){thi ...

最新文章

  1. ITK:使用FFT与输入图像的掩码图像进行归一化相关
  2. 【linux杂谈】查看centOS系统的版本号和内核号
  3. 一步一步重写 CodeIgniter 框架 (8) —— 视图的嵌套输出与返回
  4. 关于redis的pipline和lua脚本
  5. android build获取ext,顶级build.gradle文件中的ext属性
  6. hive jdbc连接时的乱码问题
  7. java成组链接法的实现_c++磁盘存储空间的管理模拟(UNIX存储管理的成组链接法的设计与实现)...
  8. C语言如何依次读取字符,C中的字符串,如何获取subString
  9. leetcode—13.链表基本操作类题目python解答
  10. python将缺失值用0代替_平滑而不使用零填充缺失值
  11. libFetion『Linux下都飞信』
  12. Db2性能问题:临时表空间太大,导致连不上数据库
  13. 渗透测试常见问题以及方法
  14. 利用亚马逊云免费搭建服务器的踩坑之旅-创建你的实例
  15. 常用的OpenCV函数速查
  16. 走完离职流程心力交瘁,血泪教训:年终奖兑换期权要慎重,期权变现有风险,加班认定最管用的是加班申请记录!...
  17. CUPS学习二:CUPS概念介绍。
  18. Swift中方法的多面性
  19. 什么网站可以测试敏感词?
  20. Android手机按键【监听】

热门文章

  1. 系统分析与设计结对项目———Wordcount
  2. Maven 中的pom.xml文件
  3. 收藏 | 史上最全的“大数据”学习资源
  4. shell 远程协助协助(转载)
  5. NOS跨分区灾备设计与实现
  6. StarUML 破解方法2.X(转)
  7. OO第三次博客总结作业
  8. python多线程同步机制condition
  9. APUE(7)---进程环境
  10. 如何使用安装光盘为本机创建yum repository