SAP Spartacus CMSFlexComponent

对于不需要来自 CMS 的任何数据(例如,登录)的 Angular 或 web 组件,您可以使用 CMSFlexComponent 类型的 CMS 组件作为占位符。 这个 CMS 组件包含特殊的 flexType 属性。 Spartacus 在其 CMS 映射中使用 flexType 属性而不是原始组件类型。

同理,CMS映射中使用的是JspIncludeComponent的uid属性,而不是原来的组件类型。

注意:建议使用 CMSFlexComponent 而不是 JspIncludeComponent,因为 JspIncludeComponent 中的 uid 属性必须是唯一的,这意味着不能有同一个 JspIncludeComponent 的两个实例。

CMSFlexComponent 字符串定义成常量 CMS_FLEX_COMPONENT_TYPE 的值:

SAP Spartacus CMSFlexComponent

在 occ-cms-page-normalizaer.ts 文件的 normalizePageComponentData 方法里设置断点:

SAP Spartacus CMSFlexComponent

准备被 normalizer 处理的源数据结构:

SAP Spartacus CMSFlexComponent

每个 page 有多个 contentSlot,每个 slot 包含了多个 Component:

SAP Spartacus CMSFlexComponent

target 结构:source 结构中 slot 的 position 值,作为 target 结构的 key:

SAP Spartacus CMSFlexComponent

最后 target 结构中每个 Component 元素,只存在三个属性:uid,typeCode 和 flexType:

SAP Spartacus CMSFlexComponent

SAP Spartacus CMSFlexComponent

 

上一篇:SAP Spartacus 支持 Vue 吗?


下一篇:弱口令检测 -- WebCrack v(1.1)