新建一个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相关推荐

  1. 关于 SAP Spartacus 注入服务 UserAccountService 和 facade 的问题

    原始问题 issue 里提到的 UserAccountService: 实现了 UserAccountFacade. 如果直接导入 UserAccountService: import { UserA ...

  2. SAP Spartacus component-wrapper自定义指令的实现

    自定义指令的路径: C:\Code\SPA\spartacus\projects\storefrontlib\src\cms-structure\page\component\component-wr ...

  3. SAP Spartacus的自定义路由

    我新建了一个自定义Component: import { Component, OnInit } from '@angular/core'; import { ProductNameNormalize ...

  4. SAP Spartacus的自定义静态页面

    新建一个StaticRouteModule: import { CommonModule } from '@angular/common'; import { NgModule } from '@an ...

  5. SAP Spartacus自定义指令cxOutlet的工作原理

    cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...

  6. 使用Angular依赖注入自定义SAP Spartacus的ProductAdapter

    新建一个MyProductAdapter,继承自SAP Spartacus的ProductAdapter,返回一些fake数据: import { Injectable } from '@angula ...

  7. SAP Spartacus 定义在app.module.ts里的providers依赖注入元数据何时得到处理

    我基于 SAP Spartacus library创建了一个自定义的Storefront实现.在其app.module.ts里,我采用自定义的MyCurrentProductService,去替换 S ...

  8. SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件

    cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...

  9. SAP Spartacus 中的依赖注入 Dependency Injection 介绍

    先了解 Angular 中的依赖注入 依赖项是指某个类执行其功能所需的服务或对象.依赖项注入(DI)是一种设计模式,在这种设计模式中,类会从外部源请求依赖项而不是让类自己来创建它们. Angular ...

最新文章

  1. iOS中的动力学:Dynamics【1】
  2. 深入理解指针以及二级指针(指针的指针)
  3. Map存值问题的研究
  4. [导入]二叉树(C#数据结构四)
  5. Poj 2109 k^n = p.
  6. 如何导入某网站的certificate证书到SAP ABAP系统
  7. vue --- 使用中央事件总线(bus)实现跨组件通信
  8. 二维高斯曲面拟合法求取光斑中心及算法的C++实现
  9. autowired注解_Spring系列之Spring常用注解总结
  10. xsd文件转图片_原来华为手机能一键将图片转为PDF,实在太方便啦!你还不会吗?...
  11. WebsResponse
  12. 使用jQuery的load()进行页面模块化加载
  13. uniapp阿里云STS上传文件
  14. 鸿蒙系统PC具体配置要求,原神pc电脑配置多少 原神游戏最低配置一览
  15. 2021年北京人大附中高考成绩查询,2021北京重点高中名单及排名
  16. 今日头条如何赚钱,今日头条赚钱规则,今日头条快速赚钱技巧
  17. java 文件zip打包下载 多个文件夹分类
  18. win7定时关机命令_如何让win7操作系统实现定时关机,以防我们忘记电脑关机
  19. 7_Arya_superbeyone_新浪博客
  20. SUMO无法创建xml文件 Could not build output file

热门文章

  1. oc-05-对象的创建
  2. Activity、Task、应用和进程
  3. ref与out一看就懂
  4. 设计模式--责任链模式(COR)
  5. Python列表以及列表的处理方法
  6. 【洛谷P4124】[CQOI2016]手机号码
  7. Gradle 引入本地定制 jar 包,而不使用坐标下载 jar 包的方法
  8. set 与 map 的第一次尝试
  9. 洗澡或游泳等导致的耳朵进水的解决方案
  10. [51nod] 1267 4个数和为0