天天看點

SAP Spartacus CurrentProductService.getProduct方法的實作原理

注入CurrentProductService:

SAP Spartacus CurrentProductService.getProduct方法的實作原理

看看這個currentProductService又包含哪些屬性:

SAP Spartacus CurrentProductService.getProduct方法的實作原理

scope為undefined:

SAP Spartacus CurrentProductService.getProduct方法的實作原理
SAP Spartacus CurrentProductService.getProduct方法的實作原理

如果從routeState裡能提取到productCode資訊,就調用this.productService.get讀取product資訊,否則傳回一個預設的Observable對象:of(null).

distinctUntilChanged是rxjs标準的util方法:

SAP Spartacus CurrentProductService.getProduct方法的實作原理

當我打開url http://localhost:4200/electronics-spa/en/USD/時,下圖斷點會多次觸發:

SAP Spartacus CurrentProductService.getProduct方法的實作原理

當我點開某個具體product時:http://localhost:4200/electronics-spa/en/USD/cameras/dsc-n1/358639

SAP Spartacus CurrentProductService.getProduct方法的實作原理

所有參數都在這個value裡:

SAP Spartacus CurrentProductService.getProduct方法的實作原理

value參數的明細:

SAP Spartacus CurrentProductService.getProduct方法的實作原理

params.productCode在這裡派上了用場。

state裡有很多product明細資料:

SAP Spartacus CurrentProductService.getProduct方法的實作原理
SAP Spartacus CurrentProductService.getProduct方法的實作原理
SAP Spartacus CurrentProductService.getProduct方法的實作原理
SAP Spartacus CurrentProductService.getProduct方法的實作原理

繼續閱讀