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