SAP 电商云 Spartacus UI 产品明细页面路由路径的自定义配置
如下圖所示,為了減少 SAP 電商云 Spartacus 客戶實施時不必要的配置,Spartacus 將不少頁面的路由路徑的默認配置,定義在如下的 default-routing-config.ts 文件里:
修改之后,產品明細頁面和 homepage 的產品超鏈接都一齊變更了:
這個默認配置什么時候被讀取,并且如何被解析的呢?
如果僅僅按照 product 作為關鍵字搜索,那么匹配結果太多了,因為這個單詞太 generic 了:
而且 RoutesConfig 這個類型,多半都是被代碼動態解析的。
換個思路,把 product 改成 product2,看看會不會報錯:
這回尷尬了,鼠標放上去,顯示的 url 指向 home 鏈接,說明 product 明細頁面的 url 根本就沒有生成,這條路也行不通。
再根據 paramsMapping 搜索,因為我們的代碼,肯定在某處,會解析這個字段:
果然,就在 semantic-path.service.ts 里:
在 semantic-path.service.ts 里添加如下打印語句:
我們看下第一行輸出,這個 / 和 login 是怎么被解析的。
在 Login.componment.html 里有個 pipe:
遇到下面這行代碼:
<ng-template #login><a role="link" [routerLink]="{ cxRoute: 'login' } | cxUrl">{{'miniLogin.signInRegister' | cxTranslate}}</a> </ng-template>就會讀取 Spartacus 里的配置,把基于語義的路由配置,轉換成 url.
從 routingConfigService 里讀取配置:
login 頁面 url 搞清楚了,那么 product 頁面呢?
奇怪,如果直接訪問如下 url:
http://localhost:4200/powertools-spa/en/USD/jerryproduct/3881018/Angle%20Grinder%20RT-AG%20115
頁面打開后,沒有看到和 product 相關的執行邏輯:
那么 Spartacus 怎么知道要加載 product 明細頁面呢?
我們后續的文章會分享。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP 电商云 Spartacus UI 产品明细页面路由路径的自定义配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新年七言对联
- 下一篇: SAP 电商云 Spartacus UI