SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage

简介: SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage

这个方法位于类CmsPageGuardService内。


当我们请求一个实际并不存在的page时,


因为1这个path对应的route configuration里的protected字段为undefined,所以不算是protected route,因此canActivate返回true.


进入this.routingService.getNextPageContext方法。


该方法从ngrx store里用SELECT取出Observable:


image.png


此时取出的page context已经不是homepage,而是1了:

image.png



试图取这个pageLabelOrId为1的page,当然取不到数据:


image.png


因此进入this.service.canActivateNotFoundPage:


image.png


而我在浏览器地址栏里输入1之后,page context何时改变的呢?


答案是在ngrx-router.store.js里,调用537行我们自己实现的serializer, 将包含了electronics-spa/en/USD/1的RouterStateSnapshot,序列化成一个新的nextRouterState:


image.png


新的page context 对象在此处生成:


image.png


然后通过serializer返回给调用者,dispatch给ngrx store:



image.png



538行执行完毕之后,再进入我们的router.reducer.ts:


image.png

相关文章
|
4月前
|
JavaScript 前端开发 数据库
如何在 SAP CRM 里通过 navigation framework 跳转到 ABAP Webdynpro 页面
如何在 SAP CRM 里通过 navigation framework 跳转到 ABAP Webdynpro 页面
|
4月前
|
缓存 前端开发 JavaScript
Spartacus SSR 使用场景里,CDN 应该 cache 哪些类型的页面
Spartacus SSR 使用场景里,CDN 应该 cache 哪些类型的页面
|
4月前
|
设计模式 API 数据处理
Spartacus 在 PDP 页面点击 Add to Cart 之后,读取最新 product 数据的设计
Spartacus 在 PDP 页面点击 Add to Cart 之后,读取最新 product 数据的设计
|
4月前
|
前端开发 JavaScript 安全
Spartacus product summary 页面的设计原理
Spartacus product summary 页面的设计原理
|
4月前
|
存储 供应链 调度
Spartacus 在 Back-Office 修改了产品的价格和描述信息后,修改会反应在 PDP 页面上吗
Spartacus 在 Back-Office 修改了产品的价格和描述信息后,修改会反应在 PDP 页面上吗
|
4月前
|
前端开发 搜索推荐 开发者
Spartacus empty cart 页面的显示逻辑
Spartacus empty cart 页面的显示逻辑
|
4月前
|
前端开发
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
|
4月前
|
存储 缓存 前端开发
关于 SAP Spartacus Optimization Engine 里的 cache 参数使用注意事项
关于 SAP Spartacus Optimization Engine 里的 cache 参数使用注意事项
|
4月前
|
JSON 开发者 数据格式
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
|
4月前
|
搜索推荐 开发者 UED
关于 SAP Spartacus 层的 UI 设计
关于 SAP Spartacus 层的 UI 设计