從前一篇文章SAP 電商雲 Spartacus UI 的雙重 layout 配置層設計 我們得知,Spartacus 層面的 layout-config.ts 可以控制 page template 應該顯示的 slots 資訊。同時,這個資訊也可以通過 OCC page API 從 commerce 背景獲得,但 Spartacus 層面的配置具有更高的優先級。
本文讨論 OCC page API 傳回之後,Spartacus 如何對其進行處理。
在 Chrome 的 redux 擴充裡找到 action 的名稱:
[Cms] Load Page Data Success
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理 作為關鍵字進行查找:
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理 設定一個斷點:
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理 這裡隻是執行完 mergeMap:
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理 在 reducer 裡,會把資料存儲到 state 裡:
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理
SAP 電商雲 Spartacus UI 從 CMS 取回 slots 和 component 之後的處理 state 裡這些資料,什麼時候,被誰通過什麼樣的方式讀取呢?
試試這個 cms.service.ts 裡:
getCurrentPage:直接從 store 裡讀取:
getComponentData: