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

新建一个MyProductAdapter,继承自SAP Spartacus的ProductAdapter,返回一些fake数据:

import { Injectable } from '@angular/core';
import { Product, ProductAdapter, ScopedProductData } from '@spartacus/core';
import { Observable, of } from 'rxjs';

const PRODUCT = {
  code: '300938',
  name: 'Jerry Product'
};

@Injectable()
export class MyProductAdapter extends ProductAdapter {
  load(productCode: string, scope?: string): Observable<Product> {
    console.log('My product adapter called!');
    return of(PRODUCT);
  }
  loadMany?(products: ScopedProductData[]): ScopedProductData[] {
    console.log('My product adapter loadMany called!');
    return [{ code: '300938', scope: '', data$: of(PRODUCT) } as ScopedProductData];
  }
}

在app module里,注入我这个自定义的adapter:

这样运行时SAP Spartacus,就会调用我自己实现的MyProductAdapter去返回产品主数据:

调用栈:ProductLoadingService

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

汪子熙 CSDN认证博客专家 前端框架 Node.js SAP
JerryWang,2007年从电子科技大学计算机专业硕士毕业后加入SAP成都研究院工作至今。Jerry是SAP社区导师,SAP中国技术大使。2020年5月下旬,Jerry做了脑部肿瘤的开颅切除手术,对编程和人生又有了新的感悟。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页