新建一个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的原创文章,请关注公众号"汪子熙":