SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage
這個(gè)方法位于類(lèi)CmsPageGuardService內(nèi)。
當(dāng)我們請(qǐng)求一個(gè)實(shí)際并不存在的page時(shí),
因?yàn)?這個(gè)path對(duì)應(yīng)的route configuration里的protected字段為undefined,所以不算是protected route,因此canActivate返回true.
進(jìn)入this.routingService.getNextPageContext方法。
該方法從ngrx store里用SELECT取出Observable:
此時(shí)取出的page context已經(jīng)不是homepage,而是1了:
試圖取這個(gè)pageLabelOrId為1的page,當(dāng)然取不到數(shù)據(jù):
因此進(jìn)入this.service.canActivateNotFoundPage:
而我在瀏覽器地址欄里輸入1之后,page context何時(shí)改變的呢?
答案是在ngrx-router.store.js里,調(diào)用537行我們自己實(shí)現(xiàn)的serializer, 將包含了electronics-spa/en/USD/1的RouterStateSnapshot,序列化成一個(gè)新的nextRouterState:
新的page context 對(duì)象在此處生成:
然后通過(guò)serializer返回給調(diào)用者,dispatch給ngrx store:
538行執(zhí)行完畢之后,再進(jìn)入我們的router.reducer.ts:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
不正常情況下的SAP Spartacus 404 Not found頁(yè)面顯示:
正常情況下的SAP Spartacus 404 Not found頁(yè)面顯示:
總結(jié)
以上是生活随笔為你收集整理的SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SOA到底是什么
- 下一篇: SAP Kyma能像SAP BYD那样做