#spartacus-storefront
#spartacus-витрина
Вопрос:
У меня есть раздел под названием «CustomTileSection», в котором есть некоторый набор компонентов (скажем, 8 компонентов, но количество компонентов не является статическим, а является динамическим). Мне нужно показать компонент в Spartacus. Как я могу получить данные, которые есть для каждого компонента, для итерации и отображения их в пользовательском интерфейсе?
Комментарии:
1. Когда вы говорите «компоненты», вы имеете в виду компоненты CMS? Или угловые компоненты?
2. Когда вы говорите раздел, вы имеете в виду CMS pageSlot или статический HTML-элемент?
3. (Раздел — CMS Pageslot) (Компоненты — Компоненты CMS)
Ответ №1:
Каждый слот страницы CMS может содержать динамическое количество компонентов CMS, чтобы показать слот с компонентами CMS внутри, вы должны:
- Добавьте слот CMS в шаблон страницы, например, через Layout Config (но если слот является пользовательским):
LandingPage2Template: {
slots: [
'CustomSlot10',
],
},
Более подробная информация здесь https://sap.github.io/spartacus-docs/page-layout /.
- Сопоставьте компонент CMS с его угловой реализацией через
typeCode
:
ConfigModule.withConfig({
cmsComponents: {
YourComponentTypeCode: {
component: AngularComponent;
}
}
});
Подробнее здесь https://sap.github.io/spartacus-docs/customizing-cms-components /.
- Затем вы можете использовать компоненты CMS с помощью
CmsComponentData
сервиса из конструктора AngularComponent:
public constructor(
public component: CmsComponentData<CmsYourComponent>
) {}
Дополнительная информация здесь https://sap.github.io/spartacus-docs/customizing-cms-components/#accessing-cms-data-in-cms-components.
Пожалуйста, обратите внимание, что если все компоненты CMS одинаковы typeCode
, вам нужно сопоставить их только один раз, всю другую работу Spartacus выполняет самостоятельно.