首页 > 解决方案 > 如何用我自己的自定义实现替换现有的斯巴达克斯外观?

问题描述

例如,可以轻松提供自定义适配器,因为我们有一个接口和一个默认实现。通过实现接口并在提供程序数组中提供自定义实现,我可以更改所有用法的实现。

不幸的是,外观层中的服务没有接口,只有实现。

所以问题是如何在 spartacus 中提供外观的自定义实现(例如 ActiveCartService),并确保 spartacus 框架中的用法也使用我的自定义实现?

标签: spartacus-storefront

解决方案


假设您有以下自定义实现ActiveCartService

import { ActiveCartService } from '@spartacus/core';
import { Injectable } from '@angular/core';

@Injectable()
export class CustomActiveCartService extends ActiveCartService {
  /* .... */
}

请提供您ActiveCartService在某个模块中的实现(即在 app.module 中):

@NgModule({
  providers: [
    {
      provide: ActiveCartService,
      useClass: CustomActiveCartService,
    }
  ],
  /* ... */
})
export class AppModule {}

推荐阅读