SAP Spartacus 如何获得当前渲染页面的 CMS 元数据

简介: SAP Spartacus 如何获得当前渲染页面的 CMS 元数据

PageLayoutService 实现里有一个 cms 依赖:CmsService.


image.png


当前页面元数据信息,通过 cms.getCurrentPage 维护。


image.png


从 routingService 里拿到当前页面上下文,再从 central 的 ngRx store 里抽取实际数据:

image.png


routingService.getPageContext 的实现:从 store里读取。


image.png




关于 TypeScript 的箭头函数,下列两种写法都正确:


第一种:没有给该函数指定返回类型,TypeScript 编译器自动推导。

image.png

select 接受一个输入参数:RoutingSelector.getNextPageContext,该参数一看就是一个函数:输入类型为 any,输出类型为 PageContext:

image.png

getNextPageContext 的类型定义正好和 select 接口里规定的 mapFn 的类型定义完全一致:


(state: any) => PageContext


select(mapFn: (state: any) => PageContext): (source$: Observable) => Observable


select 本身的类型定义:返回一个函数,该函数接收的输入参数是类型为 T 的 Observable,输出是类型为 K 的 Observable 对象。


image.png


先假设 routingState 已经拿到了,先把 mapper 函数写好。然后再回过头来,解决如何拿到 routingState,即 getRouterState 要解决的问题。


image.png

同理:

image.png

相关文章
|
2月前
|
JavaScript 前端开发 数据库
如何在 SAP CRM 里通过 navigation framework 跳转到 ABAP Webdynpro 页面
如何在 SAP CRM 里通过 navigation framework 跳转到 ABAP Webdynpro 页面
21 0
|
6月前
|
JavaScript
Spartacus CMS Feature selector 的实现明细
Spartacus CMS Feature selector 的实现明细
43 0
|
2月前
|
前端开发
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
30 0
|
3月前
|
存储 缓存 前端开发
关于 SAP Spartacus Optimization Engine 里的 cache 参数使用注意事项
关于 SAP Spartacus Optimization Engine 里的 cache 参数使用注意事项
18 0
|
3月前
|
JSON 开发者 数据格式
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
24 0
|
3月前
|
搜索推荐 开发者 UED
关于 SAP Spartacus 层的 UI 设计
关于 SAP Spartacus 层的 UI 设计
39 0
|
3月前
|
开发者 UED
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
23 0
|
5月前
|
存储 JSON API
如何避免 Spartacus 重复发送 CMS page 请求
如何避免 Spartacus 重复发送 CMS page 请求
25 0
|
5月前
|
存储 缓存
Spartacus 服务器端渲染(SSR)的 timeout 设置
Spartacus 服务器端渲染(SSR)的 timeout 设置
31 1
|
5月前
|
缓存 自然语言处理 前端开发
Spartacus CSR 渲染模式下的 home page 网络请求
Spartacus CSR 渲染模式下的 home page 网络请求
27 1