2

我试图通过定义来修改带有网点的页脚部分:

<ng-container *ngIf="templateName$ | async">
        <ng-template *ngIf="true" cxOutletRef="footer">
        </ng-template>
</ng-container>

并且页脚部分不会被替换。是否可以替换特定模板的页脚/页眉?由于此代码,templateName 已从 PageLayoutService 正确解析,但替换不起作用。也试过

<ng-container *ngIf="(templateName$ | async) === expectedTemplateName">
        <ng-template cxOutletRef="footer">
        </ng-template>
</ng-container>

但仍然没有运气。有什么提示吗?修改/更改标题也会很棒,谢谢!

4

1 回答 1

0

有多种方法可以自定义页面的页眉/页脚:

  • 在 CMS 中实施自定义,您可以在其中为不同页面设置不同的页面模板,包括替代页眉/页脚。这种方法最符合 Spartacus 的构建方式,因为页面是数据驱动的,并且组件映射是以通用方式完成的。您无需触摸 spartacus 代码即可获得不同的页眉和页脚。
  • 使用您已经尝试过的插座。您面临的问题是,在解决页面模板时,页脚已经呈现,注册的插座不会有所作为。我可以想象这在网点的工作方式上有点令人困惑。我在Stackblitz上创建了一个使用插座的条件页脚的快速示例。
  • 实现自定义根组件(替换cx-storefront)并以自定义方式实现页脚。您可以利用页面布局和页面槽组件来呈现 CMS 内容。

希望能给你一两个想法。


这是有关页面特定样式的页面模板驱动类的更多信息。鉴于页眉/页脚不会从基于页面模板的类中受益(因为它仅在路由器插座内可用),您可以在您的应用程序中实现这一点,我已经用一个示例为您更新了Stackblitz示例。

于 2020-02-17T10:46:51.047 回答