如何使用 CMS 页眉和页脚将 angular 页面添加到 Spartacus?

How to add angular pages to Spartacus with CMS header and footer?

需要在我的 Spartacus 应用程序中创建几个独立页面,这些页面不是通过 CMS 路由创建的,但这些是 Angular 个页面(它们的路由在 Angular 中)。但是这些页面需要像其他 CMS 页面(PDP、PLP 等)一样具有页眉和页脚。是否可以从 CMS 页面扩展页眉和页脚通用组件以用于 Angular 页面?

最简单的方法是使用包含页眉和页脚的模板创建一个空的 CMS 页面。它自己的页面不需要有组件,因为您将直接在 angular 中对这些进行硬编码。

最简单的方法是为这些页面设置 root 路由,例如 "content":

CMS 内容页面应使用 /content 配置,以便所有这些 URL 都将使用此 CMS 内容页面进行支持。

此外,您应该在您的应用中配置一个与这些路由匹配的 angular 路由。您可以使用标准 angular 路由功能,包括子路由。后者可能会避免对同一 CMS 页面的重复调用(但这是从头顶开始的)。


另一种方法是使用 cmsPageGuard,它需要一个带有 pageLabel 的数据对象。这提供了优势,(1) 将店面 URL 与 CMS 中的页面标签分离,以及 (2) 无需使用 "root route"。缺点是硬编码的 data.pageLabel 必须与 CMS 中的 page.label 相对应。这是一个片段:

{
    path: 'demo/static/page',
    component: PageLayoutComponent,
    data: { pageLabel: '/faq' },
    canActivate: [CmsPageGuard],
}