SAP Spartacus B2B 頁面的列表頁面,一共有 6 個類似 SAP Fiori Language 裡的 tile(磁貼):
點選去之後,能看到列表頁面有一個綠色 icon 圖示,點選之後,彈出一個 Popover Component:
第一個疑問就是:我們需要在 6 個 不同的 tile 對應的列表頁面裡,重複定義 6 次 這個 Popover Component 麼?
答案是否定的。我們並沒有在 Spartacus 標準程式碼裡,發現類似 User List Component,這提示我們,無論 User List,還是 Org List,很可能是重用某一個 Spartacus 共享控制元件,只是在執行時,動態注入了一些 tile specific 特性。
我們這個猜想,從執行時渲染出的 HTML 程式碼裡得到了印證:User List 的頁面,使用的 Component selector 為 cx-org-list, class 為 orgUser:
而 Org Unit List,使用的同樣是 cx-org-list,區別是 class 為 orgUnit:
selector cx-org-list 對應的 Angular Component 的 template 實現為:list.component.html:
(i) icon 及點選之後彈出的 Popover Component 的佈局和邏輯,就寫在這個 HTML 檔案裡,且只實現一次:
更多Jerry的原創文章,盡在:"汪子熙":