Utiliser l'injection de dépendances angulaires pour personnaliser le ProductAdapter de SAP Spartacus

Créez un nouveau MyProductAdapter, hérité de SAP Spartacus ProductAdapter, et renvoyez de fausses données:

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];
  }
}

Dans le module d'application, injectez mon adaptateur personnalisé:

De cette manière, SAP Spartacus appellera mon propre MyProductAdapter pour renvoyer les données de base du produit lors de l'exécution:

Pile d'appels: ProductLoadingService

Pour obtenir plus d'articles originaux de Jerry, veuillez suivre le compte public "Wang Zixi":

Je suppose que tu aimes

Origine blog.csdn.net/i042416/article/details/108643994
conseillé
Classement