SAP Spartacus Как показать пользовательские компоненты, которые находятся внутри раздела

#spartacus-storefront

#spartacus-витрина

Вопрос:

У меня есть раздел под названием «CustomTileSection», в котором есть некоторый набор компонентов (скажем, 8 компонентов, но количество компонентов не является статическим, а является динамическим). Мне нужно показать компонент в Spartacus. Как я могу получить данные, которые есть для каждого компонента, для итерации и отображения их в пользовательском интерфейсе?

Комментарии:

1. Когда вы говорите «компоненты», вы имеете в виду компоненты CMS? Или угловые компоненты?

2. Когда вы говорите раздел, вы имеете в виду CMS pageSlot или статический HTML-элемент?

3. (Раздел — CMS Pageslot) (Компоненты — Компоненты CMS)

Ответ №1:

Каждый слот страницы CMS может содержать динамическое количество компонентов CMS, чтобы показать слот с компонентами CMS внутри, вы должны:

  1. Добавьте слот CMS в шаблон страницы, например, через Layout Config (но если слот является пользовательским):
 LandingPage2Template: {
  slots: [
    'CustomSlot10',
  ],
},
  

Более подробная информация здесь https://sap.github.io/spartacus-docs/page-layout /.

  1. Сопоставьте компонент CMS с его угловой реализацией через typeCode :
 ConfigModule.withConfig({
  cmsComponents: {
    YourComponentTypeCode: {
      component: AngularComponent;
    }
  }
});
  

Подробнее здесь https://sap.github.io/spartacus-docs/customizing-cms-components /.

  1. Затем вы можете использовать компоненты 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 выполняет самостоятельно.