如图:假设我们通过下列 url,打开 SAP Spartacus 一个产品的明细页面,我们想找出是哪个 Angular Component,实现了该明细页面。

http://localhost:4200/electronics-spa/en/USD/product/553637/nv10

打开 Chrome 开发者工具,查看 Product 明细页面的 HTML 源代码,能找到 cx-page-layout 节点,class 值为 ProductDetailsPageTemplate.

因此,Product 明细页面,不是通过单一的 Angular Component 实现,而是由若干 Angular Components 共同组合而成,这些 Angular Components,从语义上说,都放在 ProductDetailsPageTemplate 这个模板容器之内。

https://localhost:9002/cmscockpit/index.zul 打开 SAP Hybris CMS Cockpit:

搜索:

ProductDetailsPageTemplate 的每一个 Content Slot,可以放置一个或者多个 CMS Component,而每一个 CMS Component,又对应一个 Spartacus Angular Component:

Spartacus 应用启动时,打开 Product Detail 页面之后,能观察到这个 HTTP 请求:

https://api.cg79x9wuu9-eccommerc1-p5-public.model-t.myhybris.cloud/occ/v2/electronics-spa/cms/pages?pageType=ProductPage&code=553637&lang=en&curr=USD

读取的正是 Product detail template 和其包含的 Content Slot 信息:

下图黑色高亮的 FooterNavigationComponent,即是 Product 明细页面 Footer 区域的 CMS Component 名称。

我们只需要根据该名称,在 SAP Spartacus 源代码里进行搜索,即可找到同名的 Angular Component:

为了验证我们找到的 Component 是否正确,我们在其 template 实现文件里随便做一些修改:

果然在 footer 区域看到了此修改,说明我们找到的 Component 是正确的。

当然,如果是 partner 使用 SAP Spartacus library 进行二次开发,没有办法直接修改源代码,可以使用 outlet 的方式,对 Product 明细页面某个 Component 进行增强。

在 SAP Spartacus 启动 Component 的 HTML 页面里,增添如下代码:

  <ng-template cxOutletRef="FooterNavigationComponent" cxOutletPos="before" let-model><div class="before-pdp">Jerry 对 Footer 的增强</div></ng-template>

这段代码的语义是,将绿色区域的自定义 UI 片段,动态插入到 Angular Component FooterNavigationComponent 的 UI 之前( cxOutletPos=“before” 的效果)

最后的效果:

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

如何从 SAP Spartacus Product Detail 页面,找到其 Angular 实现 Component 的位置相关推荐

  1. SAP Spartacus unit detail 页面显示后自动 focus 设置的原理

    这个自动 focus 设置的效果是:我们从 Spartacus Unit list 页面,随便选择一行,进入明细页面之后: 键盘 focus 会自动停留在 detail 页面(下图右边红色矩形框内)第 ...

  2. SAP Spartacus B2B 列表页面的 (i) icon popover Component 的声明位置

    SAP Spartacus B2B 页面的列表页面,一共有 6 个类似 SAP Fiori Language 里的 tile(磁贴): 点击去之后,能看到列表页面有一个绿色 icon 图标,点击之后, ...

  3. SAP Spartacus Product 明细页面 meta description 标签页的数据源

    例子: http://localhost:4200/Open-Catalogue/Cameras/DigitalCameras/Digital-SLR/DSLR-A330-%252BDT-18-55- ...

  4. SAP Spartacus shipping address页面请求2 - Put Address

    注意,这是一个HTTP PUT请求: /occ/v2/electronics-spa/users/current/carts/00008679/addresses/delivery?addressId ...

  5. SAP Spartacus B2B user列表对应的Angular Component

    如下图所示,这个页面点击之后: 显示的Angular UI,在SAP Spartacus里并没有单独的Angular Component来实现: 在userCmsConfig里能发现,SAP Comm ...

  6. 如何在 SAP Spartacus 产品明细页面添加自定义 UI

    产品明细页面 Product Detail Page,简称 PDP. 首先在页面上找到 Component selector:cx-tab-paragraph-container: 对应的 Angul ...

  7. SAP Spartacus not found页面的显示触发机制 - ErrorPageTemplate

    在什么情况下,SAP Spartacus会显示404 not found页面? 请求id为not-found的content page: not-found.handler.ts: semantic路 ...

  8. 一种简单地实现 SAP UI5 Master detail 页面的方法

    实现效果如下图所示: app view 的实现代码: // @ts-nocheck sap.ui.jsview("jerrylist.view.App", {getControll ...

  9. 如何在 SAP Spartacus 里添加自定义页面 - Custom Page

    网友提问 Add a custom page to Spartacus I would like to add a custom sub page (http://localhost:4200/ima ...

最新文章

  1. 企业级监控ZABBIX深度实践安装部分
  2. paddle版fnet_google
  3. 利用对象的等待队列和锁队列管理线程。
  4. linux HZ Tick Jiffies
  5. thinkphp v5.0.11漏洞_thinkphp 5.0 代码执行漏洞
  6. 用JavaScript将数字转换为大写金额
  7. Java-包、权限修饰符final、static
  8. 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
  9. x-jquery-tmpl代码示例,分页
  10. 村上隆首场中国直播,火山同传打造“影院级字幕”
  11. 设计模式之GOF23状态模式
  12. Luogu2992[USACO10OPEN] Triangle Counting
  13. 动易sf生成html,动易节点“模板选项”与“分页标签”的关系
  14. c++ 函数后面加一个冒号的含义
  15. Python与Anaconda、Jupyter Notebook与Pycharm
  16. 【苹果相册推】Xcode项目,我们将其命名为mypushchat,以及调试的iOS设备
  17. cad怎么将图层后置_cad怎么把整个图层置于底层
  18. 如何使 SAP UI5 SmartField 在运行时渲染成超链接的形式并支持跳转的试读版
  19. 基于 VIVADO 的 AM 调制解调(3)仿真验证
  20. destoon7.0商铺模板安装教程

热门文章

  1. 粉红猪小妹peppa pig中英文版209集+218本绘本+音频
  2. TP5.1使用pgsql报错“没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换”的解决办法...
  3. (三)千隆问屈术 让你成为别人的神 让人觉得你是权威专家的沟通模式
  4. 达梦DM8数据库安装和创建实例
  5. 异装癖者 transvestite
  6. 有甲乙二人乙对甲盯梢matlab,数学建模习题2
  7. 从0开始学杂项 第一期:什么是杂项
  8. 《2020最新中央企业排名》
  9. 文件服务器 上传 下载
  10. 牛客每日练习----逆序对,星图,小周的曲射炮