SAP Spartacus注入自定义的CurrentProductService
新建一个MyCurrentProductService,返回一个硬编码的产品主数据:
完整源代码如下:
import { Product, ProductScope } from '@spartacus/core';
import { Observable, of } from 'rxjs';const PRODUCT: Product = {code: '300938',name: 'Jerry hard code value',summary: 'Jerry hard code value.',price: {formattedValue: '$10000',currencyIso: 'USD',// "priceType": "BUY",value: 10000},images: {PRIMARY: {zoom: {altText: 'Photosmart E317 Digital Camera',format: 'zoom',// : "PRIMARY",url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3wxMzkzNnxpbWFnZS9qcGVnfGltYWdlcy9oMjYvaDdhLzg3OTcyNTE0NjkzNDIuanBnfGU3N2FlYWQ1YmQ1ODhjZjZiNTFjNDg3NDdjNGRkNjM5NGQzMjZmZWVmNjc3ZWQwMjgzY2MyNDJlNzYyNTczM2Q'},product: {altText: 'Photosmart E317 Digital Camera',format: 'product',// "imageType": "PRIMARY",url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3w3MDg1fGltYWdlL2pwZWd8aW1hZ2VzL2g2Ni9oOWQvODc5NzI3Nzc0OTI3OC5qcGd8NzdjOTNiMThkODQ4NTM4NmQ2NjMxMGMwYmMyOTIwODIwMzI4NTgyMGUxNDc4Y2I0OTRkOGViODNlNDZiYTJhNw'},thumbnail: {altText: 'Photosmart E317 Digital Camera',format: 'thumbnail',// "imageType": "PRIMARY",url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3wyMDYxfGltYWdlL2pwZWd8aW1hZ2VzL2g3ZS9oZmEvODc5NzMwNDA5NDc1MC5qcGd8OGZjMTNjM2JmMGY0MmYyMWY3OGM5YjQ4YjAyNzM4NjkxYjUyMmQzMDBhMmMzMjMwZThmMjI4OWMwZjg1NmYzMw'},cartIcon: {altText: 'Photosmart E317 Digital Camera',format: 'cartIcon',// "imageType": "PRIMARY",url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3wxNDQwfGltYWdlL2pwZWd8aW1hZ2VzL2gxNS9oZmYvODc5NzMzMDQ0MDIyMi5qcGd8ODU0ZWQwMjY5OWE5OTBlZjc0ZGFhZTU4ZWYwNDk4ODFmZmM1ZTg2ZjIxOWFiZTBkZmU0NDBmMDBiNTYyMzdlYg'}},GALLERY: []},nameHtml: 'Photosmart E317 Digital Camera',//nameForUrl: 'photosmart-e317-digital-camera',baseOptions: [],purchasable: true,averageRating: 4.5,stock: {/*'isValueRounded': false,'stockLevel': 314,'stockLevelStatus': 'inStock'*/},description: 'Get point and shoot simplicity plus crisp, true-to-life photos with this stylish and easy-to-use camera.<br/><br/>Get close in with 4x digital zoom, review via the clear 3.8 cm LCD then print great 10 × 15 cm photos and enlargements up to poster size.',availableForPickup: true,url: '/electronics-spa/products/300938',numberOfReviews: 22,manufacturer: 'HP',categories: [{code: '576',name: 'Digital Compacts',url: '/Open-Catalogue/Cameras/Digital-Cameras/Digital-Compacts/c/576'},{code: 'brand_1',name: 'HP',url: '/Brands/HP/c/brand_1'}],priceRange: {}//,//configurable: false
};export class MyCurrentProductService {getProduct(scopes?: (ProductScope | string)[] | ProductScope | string): Observable<Product> {console.log('My product service is called!');return of(PRODUCT);}
}
在app module里,用MyCurrentProductService覆盖掉SAP Spartacus标准的CurrentProductService:
运行时测试,我任意点开一个产品主数据的明细页面,都会调用我自己的CurrentProductService,显示硬编码的数据:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
SAP Spartacus注入自定义的CurrentProductService相关推荐
- 关于 SAP Spartacus 注入服务 UserAccountService 和 facade 的问题
原始问题 issue 里提到的 UserAccountService: 实现了 UserAccountFacade. 如果直接导入 UserAccountService: import { UserA ...
- SAP Spartacus component-wrapper自定义指令的实现
自定义指令的路径: C:\Code\SPA\spartacus\projects\storefrontlib\src\cms-structure\page\component\component-wr ...
- SAP Spartacus的自定义路由
我新建了一个自定义Component: import { Component, OnInit } from '@angular/core'; import { ProductNameNormalize ...
- SAP Spartacus的自定义静态页面
新建一个StaticRouteModule: import { CommonModule } from '@angular/common'; import { NgModule } from '@an ...
- SAP Spartacus自定义指令cxOutlet的工作原理
cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...
- 使用Angular依赖注入自定义SAP Spartacus的ProductAdapter
新建一个MyProductAdapter,继承自SAP Spartacus的ProductAdapter,返回一些fake数据: import { Injectable } from '@angula ...
- SAP Spartacus 定义在app.module.ts里的providers依赖注入元数据何时得到处理
我基于 SAP Spartacus library创建了一个自定义的Storefront实现.在其app.module.ts里,我采用自定义的MyCurrentProductService,去替换 S ...
- SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件
cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...
- SAP Spartacus 中的依赖注入 Dependency Injection 介绍
先了解 Angular 中的依赖注入 依赖项是指某个类执行其功能所需的服务或对象.依赖项注入(DI)是一种设计模式,在这种设计模式中,类会从外部源请求依赖项而不是让类自己来创建它们. Angular ...
最新文章
- iOS中的动力学:Dynamics【1】
- 深入理解指针以及二级指针(指针的指针)
- Map存值问题的研究
- [导入]二叉树(C#数据结构四)
- Poj 2109 k^n = p.
- 如何导入某网站的certificate证书到SAP ABAP系统
- vue --- 使用中央事件总线(bus)实现跨组件通信
- 二维高斯曲面拟合法求取光斑中心及算法的C++实现
- autowired注解_Spring系列之Spring常用注解总结
- xsd文件转图片_原来华为手机能一键将图片转为PDF,实在太方便啦!你还不会吗?...
- WebsResponse
- 使用jQuery的load()进行页面模块化加载
- uniapp阿里云STS上传文件
- 鸿蒙系统PC具体配置要求,原神pc电脑配置多少 原神游戏最低配置一览
- 2021年北京人大附中高考成绩查询,2021北京重点高中名单及排名
- 今日头条如何赚钱,今日头条赚钱规则,今日头条快速赚钱技巧
- java 文件zip打包下载 多个文件夹分类
- win7定时关机命令_如何让win7操作系统实现定时关机,以防我们忘记电脑关机
- 7_Arya_superbeyone_新浪博客
- SUMO无法创建xml文件 Could not build output file