我們看一個 PDP 即 product detail page 的實際例子:
http://localhost:4200/powerto...
在單頁應用程式中,您可以通過顯示應用程式的不同檢視來控制使用者看到的內容。 Spartacus 使用 Angular Router 來處理從一個檢視到另一個檢視的導航。 路由器通過將每個 URL 視為呈現特定檢視的指令來完成此操作。
我們載入這個 PDP 時,OCC API url:
https://host:9002/occ/v2/powe...
ProductPage 是 CMS 裡一種特殊的 page 型別,引數為 product code:3881017
返回的 OCC response 裡,能看到 page template:ProductDetailsPageTemplate
Content slot 也有很多數值在內:
總共 17 個 slot:
問題1:Spartacus 什麼地方將引數 pageType=ProductPage 傳給 OCC API?
根據關鍵字 ProductPage,居然搜尋不到結果。
應該是我的搜尋條件使用不對,現在正常了:
在 getContextParams 裡設定斷點:
這裡能清晰看到,connector - (35 行)呼叫 adapter:
然而,是誰呼叫 35 行的 getList 呢?
繼續在 cms-component.connector.ts 裡設定斷點:
最終發現,是 NavigationEntryItemEffects 負責驅動的。
更多Jerry的原創文章,盡在:"汪子熙":