注入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方法的實作原理