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

通过AppComponent的构造函数引入OccCartAdapter的依赖:

启动应用,在解析并加载AppComponent时,检测到输入参数的CurrentProductService是通过 Angular 依赖注入提供的,因此执行getOrCreateInjectable 方法:

注意这里的token 指向class CurrentProductService:

而 CurrentProductService的实例化,发生在下图的代码位置。

其中1和2两处的token指向不一样:

第二处的token,已经指向自定义的product service了:

OccCartAdapter也可以通过同样的方式注入:

更多Jerry的原创文章,尽在:“汪子熙”:

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

  1. SAP Spartacus Reference App Structure

    https://sap.github.io/spartacus-docs/reference-app-structure/ 该概念在 SAP Spartacus 3.1 版本引入. 这个 Refere ...

  2. Angular目录结构分析以及app.module.ts详解

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  3. SAP Spartacus由于导入module路径在服务器上不正确而导致的Travis build错误

    源文件:feature-libs\organization\administration\components\unit\details\unit-details.module.ts 导入了下面文件里 ...

  4. SAP Spartacus 最后渲染出的页面和后台 CMS 页面元数据的一一对应

    最后渲染出来的Spartacus的根节点:LandingPage2Template: 就是CMS page的homepage: 根节点下的cx-storefront: 就是Angular应用app.c ...

  5. SAP Spartacus lazy load module 里包含了被其他 Component 静态引用的组件该怎么办

    例子: 我试图让 ProductModule 支持懒加载: 然而,该 module 里声明了一个 CMS Component:PDPServiceComponent: 该 Component 被 Cu ...

  6. SAP Spartacus如何使用自定义的Cart Service

    新建一个CartService,将AcmtiveCartService设置成父类: import { Injectable } from '@angular/core'; import { Activ ...

  7. 如何找到 SAP Spartacus 里某个 Component TypeScript 编译后生成的 JavaScript 位置

    需求 如何找到触发该网络请求的准确代码位置? 从 initiator 里查看调用栈上下文,一点头绪也没有. 找到触发该网络请求的控件的 selector:cx-register 在 Storefron ...

  8. 如何在SAP Spartacus里增添自定义的配置条目

    方法很多,本文只介绍其中一种. app.module.ts里: export function jerryConfigFactory(): any {const configJerry = {name ...

  9. 关于 SAP Spartacus Loader Meta Reducer 的用途 - loading 在 true 和 false之前切换的逻辑

    为了给用户更好的反馈,基于他们的行为,我们经常需要保留诸如"正在加载购物车"."获取用户地址失败"等信息. 对于每个单独的应用程序状态,我们必须将元数据放在旁边 ...

最新文章

  1. 【转载】pycharm远程调试配置
  2. csapp 、sicp 、深入理解计算机系统、 计算机程序的构造和解释
  3. vs2008 error LNK2019: 无法解析的外部符号总结
  4. 【阿里云 Linux 服务器】mysql 遇到以下问题Expression #1 of SELECT list is not in GROUP BY clause and contains nonag
  5. gb50268-2008给水排水管道施工及验收规范_20131城市给水排水管道·中篇(开槽施工管道质量验收标准)...
  6. 解读GAN及其 2016 年度进展
  7. 使用RestTemplate访问restful服务时遇到的问题
  8. C#的Timer解析(转)
  9. 如何计算一只鸡的表面积?各大专业的奇葩解法
  10. stl vector 函数_vector :: at()函数以及C ++ STL中的示例
  11. [html] 使用svg画一个微信的logo
  12. 2所“双一流”大学官宣:博士招生考试,延期!
  13. python messagebox弹窗退出_python 中messagebox使用 做中断调试不错
  14. 采用“不可能的曲面”!沈义人:OPPO Find X3真机上手有惊喜
  15. 纯css实现照片墙3D效果
  16. Html5+Css3小试牛刀
  17. 统计某个路径下的总文件个数,及总行数(不含空行)
  18. java模拟器野人岛2,生存战争野人岛2最终版
  19. 你会如何选型电容?关于电容的ESR?如何理解电容的阻抗-频率曲线?
  20. 高阶技术管理岗空降落地实践指南

热门文章

  1. ansible基本模块使用
  2. leetcode之Insertion Sort List
  3. Sharepoint学习笔记—Ribbon系列-- 3.在Ribbon中找到正确的Location
  4. 替换OWA通讯录方式的方法
  5. windows下在一台电脑上配置多个git账号
  6. BZOJ 4002--有意义的字符串(矩阵乘法)
  7. 大公司青睐的50款开源工具
  8. JavaScript中正则表达式学习笔记
  9. 【设计】精致的侧滑菜单设计案例
  10. 浅谈Web开发中的6种技术