我基於 SAP Spartacus library建立了一個自定義的Storefront實現。在其app.module.ts裡,我採用自定義的MyCurrentProductService,去替換 SAP Spartacus 標準的CurrentProductService 實現:
透過AppComponent的建構函式引入OccCartAdapter的依賴:
啟動應用,在解析並載入AppComponent時,檢測到輸入引數的CurrentProductService是透過 Angular 依賴注入提供的,因此執行getOrCreateInjectable 方法:
注意這裡的token 指向class CurrentProductService:
而 CurrentProductService的例項化,發生在下圖的程式碼位置。
其中1和2兩處的token指向不一樣:
第二處的token,已經指向自定義的product service了:
OccCartAdapter也可以透過同樣的方式注入:
更多Jerry的原創文章,盡在:"汪子熙":