Как добавить угловые страницы в Spartacus с верхним и нижним колонтитулами CMS?

В моем приложении Spartacus есть требование создать пару автономных страниц, которые не создаются через маршрут CMS, но это страницы Angular (с их маршрутами в Angular). Но эти страницы должны иметь верхний и нижний колонтитулы, как и другие страницы CMS (PDP, PLP и т. Д.). Можно ли расширить общие компоненты верхнего и нижнего колонтитула со страниц CMS для использования на страницах Angular?

1 ответ

Решение

Самый простой способ сделать это - создать пустую страницу CMS с шаблоном, содержащим верхний и нижний колонтитулы. Сама страница не обязательно должна иметь компоненты, так как вы напрямую запрограммируете их в angular.

Самый простой подход - создать корневой маршрут для этих страниц, например, "content":

Страница содержимого CMS должна быть настроена с /content, так что все эти URL-адреса будут поддерживаться этой страницей содержимого CMS.

Кроме того, вы должны настроить угловой маршрут в своем приложении, который соответствует этим маршрутам. Вы можете использовать стандартные возможности угловой маршрутизации, включая дочерние маршруты. Последний, вероятно, позволит избежать дублирования вызовов одной и той же страницы CMS (но это из первых рук).


Альтернативный подход - использовать cmsPageGuard, которому требуется объект данных с pageLabel. Это дает преимущества: (1) отделить URL-адрес витрины от метки страницы в CMS и (2) нет необходимости использовать "корневой маршрут". Недостаток в том, что жестко запрограммированныйdata.pageLabel должен соответствовать page.labelв CMS. Вот отрывок:

{
    path: 'demo/static/page',
    component: PageLayoutComponent,
    data: { pageLabel: '/faq' },
    canActivate: [CmsPageGuard],
}
Другие вопросы по тегам