SAP 电商云 Spartacus 产品明细页面的 pageContext 如何获取的?

简介: SAP 电商云 Spartacus 产品明细页面的 pageContext 如何获取的?

调试入口:this.routingService.getNextPageContext()


image.png

这个 page context 直接从 store 里读取的,靠调试 selector 是拿不到的。

image.png



我们以前学习过,当 Angular router 框架成功将浏览器地址栏的 url,匹配到开发人员用 RouterModule.forChild 传入的 routes 数组时,会抛出 RoutesRecognized 事件,如下图所示:

image.png



if (event instanceof RoutesRecognized) {
                routesRecognized = event;
                if (!dispatchNavLate && this.trigger !== RouterTrigger.STORE) {
                    this.dispatchRouterNavigation(event);
                }

Angular router 框架这里提供了一个 hook,可以允许应用开发人员修改下一个 router state,即 nextRouterState 变量:


image.png


@Injectable()
export class CustomSerializer
  implements fromNgrxRouter.RouterStateSerializer<ActivatedRouterStateSnapshot>

我们自己实现了 Angular router 框架的一个接口:


fromNgrxRouter.RouterStateSerializer


这里硬编码了,只要 routerState 里的参数,出现了 productCode,我们就认为这是一个 Product page:


image.png

if (params['productCode']) {
        context = { id: params['productCode'], type: PageType.PRODUCT_PAGE };
      } 

3

然后我们的 reducer 被调用:


image.png


这些都是之前 serializer populate 出的数据:


image.png

这里我们把 navigation target 写入 in-memory state, 这样接下来的 selector,就能从 state 里读取出 product 明细页面的 page context 了:



image.pngimage.png

相关文章
|
6月前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
6月前
|
存储 安全 数据管理
SAP 产品 data archive 数据归档的重要性
SAP 产品 data archive 数据归档的重要性
|
6月前
|
监控 测试技术
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
|
6月前
|
设计模式 API 数据处理
Spartacus 在 PDP 页面点击 Add to Cart 之后,读取最新 product 数据的设计
Spartacus 在 PDP 页面点击 Add to Cart 之后,读取最新 product 数据的设计
|
6月前
|
前端开发 JavaScript 安全
Spartacus product summary 页面的设计原理
Spartacus product summary 页面的设计原理
|
6月前
|
存储 供应链 调度
Spartacus 在 Back-Office 修改了产品的价格和描述信息后,修改会反应在 PDP 页面上吗
Spartacus 在 Back-Office 修改了产品的价格和描述信息后,修改会反应在 PDP 页面上吗
|
6月前
|
机器学习/深度学习 供应链 监控
Spartacus 产品主数据的 stock level 字段
Spartacus 产品主数据的 stock level 字段
|
6月前
|
存储 监控 数据库
SAP 电商云 product catalog 从 staged 到 online 两个版本之间的同步
SAP 电商云 product catalog 从 staged 到 online 两个版本之间的同步
|
6月前
|
监控 安全 数据管理
SAP 电商云 Product catalog 的 staged 和 online 两种版本的设计理念
SAP 电商云 Product catalog 的 staged 和 online 两种版本的设计理念
|
6月前
|
存储 供应链
什么是 SAP 产品主数据的 Scale 属性
什么是 SAP 产品主数据的 Scale 属性