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