覆盖 footer/header 部分
Override footer/header section
我试图通过定义修改带有出口的页脚部分:
<ng-container *ngIf="templateName$ | async">
<ng-template *ngIf="true" cxOutletRef="footer">
</ng-template>
</ng-container>
并且页脚部分未被替换。是否可以为特定模板替换 footer/header?
作为此代码的结果,templateName 已从 PageLayoutService 正确解析,但替换不起作用。
也尝试过
<ng-container *ngIf="(templateName$ | async) === expectedTemplateName">
<ng-template cxOutletRef="footer">
</ng-template>
</ng-container>
但仍然没有运气。
有什么提示吗? modify/change header 也很棒,谢谢!
自定义页面的 header/footer 有多种方法:
- 在 CMS 中实现自定义,您可以在其中为不同的页面设置不同的页面模板,包括备选 header/footer。这种方法最适合 Spartacus 的构建方式,因为页面是数据驱动的,并且组件映射是以通用方式完成的。您无需触摸 spartacus 代码即可获得不同的页眉和页脚。
- 使用您已经尝试过的插座。您面临的问题是,在解决页面模板时,页脚已经呈现,注册的插座不会产生任何影响。我可以想象这对网点的运作方式有点混乱。我在 Stackblitz 上为使用 outlets 的条件页脚创建了一个快速示例。
- 实现自定义根组件(替换
cx-storefront
)并以自定义方式实现页脚。您可以利用页面布局和页面槽组件来呈现 CMS 内容。
希望能给您带来一两个想法。
这里有一些关于页面模板驱动的 classes 页面特定样式的更多信息。鉴于 header/footer 无法从基于 class 的页面模板中获益(因为它仅在路由器插座内可用),您可以在您的应用程序中实现它,我已经更新了 Stackblitz给你举个例子。
我试图通过定义修改带有出口的页脚部分:
<ng-container *ngIf="templateName$ | async">
<ng-template *ngIf="true" cxOutletRef="footer">
</ng-template>
</ng-container>
并且页脚部分未被替换。是否可以为特定模板替换 footer/header? 作为此代码的结果,templateName 已从 PageLayoutService 正确解析,但替换不起作用。 也尝试过
<ng-container *ngIf="(templateName$ | async) === expectedTemplateName">
<ng-template cxOutletRef="footer">
</ng-template>
</ng-container>
但仍然没有运气。 有什么提示吗? modify/change header 也很棒,谢谢!
自定义页面的 header/footer 有多种方法:
- 在 CMS 中实现自定义,您可以在其中为不同的页面设置不同的页面模板,包括备选 header/footer。这种方法最适合 Spartacus 的构建方式,因为页面是数据驱动的,并且组件映射是以通用方式完成的。您无需触摸 spartacus 代码即可获得不同的页眉和页脚。
- 使用您已经尝试过的插座。您面临的问题是,在解决页面模板时,页脚已经呈现,注册的插座不会产生任何影响。我可以想象这对网点的运作方式有点混乱。我在 Stackblitz 上为使用 outlets 的条件页脚创建了一个快速示例。
- 实现自定义根组件(替换
cx-storefront
)并以自定义方式实现页脚。您可以利用页面布局和页面槽组件来呈现 CMS 内容。
希望能给您带来一两个想法。
这里有一些关于页面模板驱动的 classes 页面特定样式的更多信息。鉴于 header/footer 无法从基于 class 的页面模板中获益(因为它仅在路由器插座内可用),您可以在您的应用程序中实现它,我已经更新了 Stackblitz给你举个例子。