如何用我自己的自定义实现替换现有的斯巴达克斯外观?
How to replace an existing spartacus facade with my own custom implementation?
例如,可以轻松提供自定义适配器,因为我们有接口和默认实现。通过实现接口并在提供程序数组中提供自定义实现,我可以更改所有用法的实现。
不幸的是,外观层的服务没有接口,只有实现。
所以问题是我如何在 spartacus 中提供外观(例如 ActiveCartService)的自定义实现并确保 spartacus 框架中的用法也使用我的自定义实现?
假设您有 ActiveCartService
:
的自定义实现
import { ActiveCartService } from '@spartacus/core';
import { Injectable } from '@angular/core';
@Injectable()
export class CustomActiveCartService extends ActiveCartService {
/* .... */
}
请在某些模块(即 app.module 中)提供 ActiveCartService
的实现:
@NgModule({
providers: [
{
provide: ActiveCartService,
useClass: CustomActiveCartService,
}
],
/* ... */
})
export class AppModule {}
例如,可以轻松提供自定义适配器,因为我们有接口和默认实现。通过实现接口并在提供程序数组中提供自定义实现,我可以更改所有用法的实现。
不幸的是,外观层的服务没有接口,只有实现。
所以问题是我如何在 spartacus 中提供外观(例如 ActiveCartService)的自定义实现并确保 spartacus 框架中的用法也使用我的自定义实现?
假设您有 ActiveCartService
:
import { ActiveCartService } from '@spartacus/core';
import { Injectable } from '@angular/core';
@Injectable()
export class CustomActiveCartService extends ActiveCartService {
/* .... */
}
请在某些模块(即 app.module 中)提供 ActiveCartService
的实现:
@NgModule({
providers: [
{
provide: ActiveCartService,
useClass: CustomActiveCartService,
}
],
/* ... */
})
export class AppModule {}