SAP 电商云 Spartacus 产品明细页面的 OCC API 是如何被触发的
當訪問如下 url 時,
http://localhost:4200/powertools-spa/en/USD/jerryproduct/3755211/PSR%2010.8%20LI
我們能看到如下的 OCC API 調用:
https://:9002/occ/v2/powertools-spa/cms/pages?pageType=ProductPage&code=3755211&lang=en&curr=USD
這個 OCC API 是 cms-page.connector.ts 觸發的。Connector 肯定是 effect 調用的,調用時,pageContext 已經解析完畢了。這個 type 為 ProductPage 是如何解析的?
加上打印語句:
果然是被 page effect 調用的:
檢查是誰拋出的 CmsActions.LoadCmsPageData 即可。
在 page action 的構造函數里打斷點,就知道誰去 dispatch 的這個 action 了:
看樣子我們要在 cms.service.ts 的 hasPage 方法里繼續設置斷點了:
這里找到了源頭:我們之前的文章已經介紹過,把 url 粘貼到瀏覽器地址欄之后,會觸發 Angular 路由器框架 Router 的檢測邏輯,如果 url 的片段確實是 RouterModule.forChild 里傳入的 routes 數組的片段時,說明路由匹配成功,此時需要執行該路由的 canActivate 鉤子,只有鉤子返回 true,才能真正激活這個路由,加載 route 數據結構里維護的 Component 實例。
上圖解釋了本文標題的疑問。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP 电商云 Spartacus 产品明细页面的 OCC API 是如何被触发的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流媒体传输协议(rtp/rtcp/rts
- 下一篇: 美股周五:三大股指全线上涨,苹果涨超4%