spartacus-storefront - 如何用我自己的自定义实现替换现有的斯巴达克斯外观?
问题描述
例如,可以轻松提供自定义适配器,因为我们有一个接口和一个默认实现。通过实现接口并在提供程序数组中提供自定义实现,我可以更改所有用法的实现。
不幸的是,外观层中的服务没有接口,只有实现。
所以问题是如何在 spartacus 中提供外观的自定义实现(例如 ActiveCartService),并确保 spartacus 框架中的用法也使用我的自定义实现?
解决方案
假设您有以下自定义实现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 {}
推荐阅读
- r - 包或命名空间加载失败,vctrs 包未正确安装
- python - 如何使用 sage 找到 spqr 树?
- javascript - 根据用户模型中的变量添加 CCS 类
- windows - Robocopy /mov 记录目标文件夹中的所有文件?
- c# - 为 AppShell.xaml 中指定的页面之外的页面定义路由并导航到这些页面
- css - 如何在 Bootstrap 导航栏中设置汉堡菜单中的项目样式?
- python - 如何将 PayPal 用户的佣金添加到使用 v2 的用户交易中
- c# - 访问 Microsoft.Extensions.Hosting 服务时出现问题。使用 AddPooledDbContextFactory
- python-3.x - 从数据框中删除字符返回连接的字符串
- xaml - BackGroundColor 从上到下渐变