【问题标题】:Extend Spartacus cms component in a library在库中扩展 Spartacus cms 组件
【发布时间】:2020-06-18 10:10:53
【问题描述】:

我正在尝试创建一个 Angular 库,以扩展 Spartacus 产品详细信息页面中产品图像组件的功能。

在自定义 cms 组件时,我了解到有必要在 app.component.html 中添加如下几行:

<ng-template cxOutletRef="ProductImagesComponent">
  <cx-product-images></cx-product-images>
</ng-template>

是否可以将此部分集成到库中,以便安装它的用户无需更改其 app.component.html?我似乎找不到任何关于它的信息。 另外,可以做一个扩展 cms 组件的库吗?我对 Angular 和 Spartacus 很陌生。

谢谢

【问题讨论】:

    标签: angular spartacus-storefront


    【解决方案1】:

    按照您的示例使用插座是自定义组件的一种可能方式,但是我认为您通常不会完全按照您的建议进行操作。出口是修改为该组件呈现的模板的一种方式,但默认呈现是在该模板中动态包含产品图像组件......因此与默认值相比,您的示例没有任何变化。通常,您会使用 outlet 进行相对较小的更改,或者在实际组件内容之前/之后放置其他内容。 Outlets 并不适用于所有用例,因为完整的上下文可能不可用

    另一种方法是在 Angular 中创建一个新组件,并将该新组件映射到来自后端的 CMS 组件。有关这方面的文档,请参阅 https://sap.github.io/spartacus-docs/customizing-cms-components/

    我自己还没有尝试过,但创建包含您自己的 Angular 替换组件的库似乎是合理的,并且只需遵循标准 Angular 方法来创建库。我想要考虑的事情是使用该库的开发人员将如何使用您的库中的组件。您可以拥有指导他们为他们自己的项目显式配置组件映射的文档,或者您可以提供他们可以从他们的 App 组件调用以自动更新配置的配置方法。 Spartacus 的标准组件已经遵循此模型,请参阅https://sap.github.io/spartacus/modules/CmsModule.html#source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      相关资源
      最近更新 更多