天天看点

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方法的实现原理

继续阅读