如何扩展ProductListComponent

时间:2019-09-23 08:04:37

标签: spartacus-storefront

我们正在尝试扩展ProductListComponent,因此我们创建了:

export class CustomProductListComponent extends ProductListComponent {

  constructor(
    pageLayoutService: PageLayoutService,
    productListComponentService: ProductListComponentService
  ) {
    super(pageLayoutService, productListComponentService);
  }
}

但是ProductListComponentService不可见,因此我们决定通过以下方法扩展ProductListComponentService:

@Injectable({providedIn: 'root'})
export class CustomProductListComponentService extends ɵe {
  constructor(
    protected productSearchService: ProductSearchService,
    protected routing: RoutingService,
    protected activatedRoute: ActivatedRoute,
    protected currencyService: CurrencyService,
    protected languageService: LanguageService,
    protected router: Router
  ) {
    super(productSearchService, routing, activatedRoute, currencyService, languageService, router);
  }
}

但是现在在扩展部分,我们有了这个奇怪的字符串“ɵe”。扩展ProductListComponent的推荐方法是什么?为什么在此字符串“ɵe”?

1 个答案:

答案 0 :(得分:1)

ProductListComponentService应该是公共的,因此是AFAIK的错误。如果可以的话,请为此创建一个问题,我会尝试将其升级。

现在,您可以使用通过专用符号(ɵe)进行的导入作为解决方法,但要考虑到它可能在下一个lib版本中更改(因此,在将lib更新到新版本时需要再次检查)。不幸的是,目前没有更好的选择。

要使其更易于阅读,可以将其导入如下: import { ɵe as ProductListComponentService },因此至少在实际的extend中,您将能够使用正确的符号。