该指令的作用是动态加载Component

如果将page-slot.component.html里的cxComponentWrapper指令注释掉:

最后渲染的页面将会一片空白:

如果仅仅打印position的值:

能看到SAP Spartacus所有可用的position:

如果将Component数据全部打印出来:

效果如下:

只渲染position为MiniCart的Component:

最后效果如下:

只有MiniCart被渲染了出来:

完整代码:

<ng-template[cxOutlet]="position"[cxOutletContext]="{ components$: components$ }"
><ng-template*ngFor="let component of components"[cxOutlet]="component.flexType"[cxOutletContext]="{ component: component }"[cxOutletDefer]="getComponentDeferOptions(component.flexType)"(loaded)="isLoaded($event)"><div>position: {{ position }}</div><ng-container *ngIf="position === 'MiniCart'" [cxComponentWrapper]="component"></ng-container></ng-template>
</ng-template>

MiniCartComponent的Angular Component和CMS Component同名:

从OCC API返回的MiniCartComponent数据:


从上图能看出,Spartacus使用的CMS API,读取的page数据,类型字段名称为typeCode, 而Spartacus CMS mapping使用的字段为flexType, 因此需要Spartacus的convertor / normalizer,在字段typeCode和flexType之间做转换。

更多Jerry的原创文章,尽在:“汪子熙”:

SAP Spartacus使用cxComponentWrapper测试MiniCart相关推荐

  1. SAP Spartacus的cxComponentWrapper指令

    Jerry之前的文章已经把component结构的三个字段,uid,typeCode和flexType都打印出来了. 本文研究和[cxComponentWrapper]如何动态加载和渲染Compone ...

  2. 如何运行 SAP Spartacus cypress 端到端测试

    首先在本地启动 Spartacus instance, 比如执行 b2c.bat: 进入文件夹:projects/storefrontapp-e2e yarn install: 然后 yarn cy: ...

  3. SAP Spartacus Session affinity

    参见这个讨论. 后端运行在多个 pods/节点时,当子序列请求过早进入时,后端将无法跨集群发送缓存失效请求.此外,如果多个请求分散在多个节点上,则会消耗延迟和不必要的资源. 对于单个客户端,Spart ...

  4. SAP Spartacus 4.0 的技术变化

    在您迁移到 4.0 版库之前,我们强烈建议您切换到新的应用程序结构和新的功能库. 在多个小步骤中进行迁移更容易(迁移到新的应用程序结构,切换到提取的功能库,然后迁移到 4.0),您可以确保在每一步之后 ...

  5. SAP Spartacus 里的 .release-it.json 文件

    在 SAP Spartacus package.json 里有一个依赖叫做 release-it: 这个工具的链接:https://github.com/release-it/release-it 这 ...

  6. SAP Spartacus UI Duplicated keys has been found in the config of i18n chunks

    在测试 SAP Spartacus 3.4.5 版本的 SSR 功能时,发现一个 warning 信息: console.warn(`Duplicated keys has been found in ...

  7. SAP Spartacus 的会话管理 Session Management

    官网 从一开始,Spartacus 就包含了客户端身份验证和用户身份验证. 尽管这对于 Web 应用程序来说并不常见,但对于 Spartacus 来说是必须的,因为后者需要使用 OCC API. 客户 ...

  8. SAP Spartacus Definition of Done

    SAP Spartacus Definition of Done Coding guidelines Spartacus 团队采用了以下一组规则来保持 Spartacus 代码的可读性和可维护性. 作 ...

  9. SAP Commerce Cloud WCMS 里的 home 页面和 SAP Spartacus Page API 返回的数据比较

    You can only create new components in the WCMS Page View perspective. In the Live Edit perspective, ...

最新文章

  1. python split(), os.path.split()和os.path.splitext()函数的区别
  2. 消息队列重要机制讲解以及MQ设计思路(kafka、rabbitmq、rocketmq)
  3. Java环境配置及第一个HelloWord(Win)
  4. 创造与魔法最新服务器怎么进,创造与魔法进不了服务器 | 手游网游页游攻略大全...
  5. sql去除字符串中首尾空格
  6. 通过模板设计按钮样式
  7. Spring , Spring mybatis 配制文件 模板
  8. Overview of HEVC之3 术语
  9. 水晶报表中的主从表结构
  10. 翻译:通过使用终端(iTerm2&Oh my ZSH)来提高您的生产率
  11. java基于springboot校园办公室报修管理系统
  12. Crash: ‘SQLiteDatabaseCorruptException: file is encrypted or is not a database‘的分析与解决
  13. 2020第六届“美亚杯”团队赛WP
  14. [网易IM通讯]推送小结
  15. 破解版的cornerstore(mac版)
  16. Debian系统安装
  17. Cause: java.sql.SQLException: Parameter index out of range (4 > number of parameters, which is 3).
  18. 数据挖掘中所需的概率论与数理统计知识,上
  19. 电商数据监测:如何获取想要的电商平台数据?
  20. IP核学习之PLL锁相环

热门文章

  1. java代码,继承。。。主要是传值,赋值。
  2. How Tomcat Works(二十)
  3. IDC运维团队技术交流总结篇————换个角度看世界
  4. dubbo学习(四)配置dubbo 注解方式配置
  5. 蓝桥杯 每周一练 第一周(3n+1问题)
  6. php获取用户的上5级用户
  7. range 和 xrange
  8. 用户故事与敏捷方法pdf
  9. 64位系统安装ODBC驱动的方法
  10. python socks5 代理服务