как сделать SimpleBannerComponent в Спартаке - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть два компонента, CmsFlexComponent

INSERT_UPDATE CMSFlexComponent;$contentCV[unique=true];uid[unique=true];name;flexType;&componentRef
;;VideoListingComponent;VideoListingComponent;VideoListingComponent;VideoListingComponent

и SimpleBannerComponent

;;VideoListingComponent;VideoListingComponent;VideoListingComponent;VideoListingComponent 
 INSERT_UPDATE Media; $contentCV[unique = true]; code[unique = true]; mime     ; realfilename; @media[translator = de.hybris.platform.impex.jalo.media.MediaDataTranslator][forceWrite = true]; folder(qualifier)[default = 'images']
               ;                          ; banner1            ; text/jpg ; banner1.jpg ; $jarResourceCms/banner1.jpg

INSERT_UPDATE SimpleBannerComponent; $contentCV[unique = true]; uid[unique = true]    ; name                   ; &componentRef       ; $picture[lang = $lang]
                               ;                          ; VideoListPageBanner   ; Video List Page Banner ; VideoListPageBanner ; banner1

В Спартаке я определил отображение следующим образом: export const videoListingConfig = {cmsComponents: {

VideoListingComponent: {
      component: VideoListingComponent
    },
    VideoListPageBanner:{
      component: VideoListPageBannerComponent
    }    
}

  }

Мне нужен доступ ко второму компоненту баннера: поэтому в этот файл ts компонента я вставил

private component: CmsComponentData<CmsBannerComponent>

Когда я пытаюсь напечатать

    this.component.data$.subscribe(comp => this.cmsComp = comp);
console.log(this.component);

Я всегда получаю данные о первых компонентах. Что я делаю неправильно. Я думаю, что это работает "из коробки".

1 Ответ

0 голосов
/ 27 апреля 2020

Вы не можете сопоставить идентификаторы компонентов отдельных экземпляров с компонентами в Spartacus, вы можете только сопоставить типы компонентов Commerce с компонентами Spartacus. Исключение составляют CMSFlexComponents, где отображается значение flexType. См. https://sap.github.io/spartacus-docs/customizing-cms-components/ и https://sap.github.io/spartacus-docs/banner-component/

Для справки: стандартный код Спартака, который устанавливает отображение SimpleBannerComponent в banner.module.ts :

ConfigModule.withConfig(<CmsConfig>{
  cmsComponents: {
    SimpleResponsiveBannerComponent: {
      component: BannerComponent,
    },
    BannerComponent: {
      component: BannerComponent,
    },
    SimpleBannerComponent: {
      component: BannerComponent,
    },
  },
}),

С помощью второго компонента вы пытаетесь сопоставить UID (VideoListPageBanner), и это не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...