File

projects/storefrontlib/cms-components/navigation/breadcrumb/breadcrumb.component.ts

Extends

PageTitleComponent

Implements

OnInit

Metadata

changeDetection ChangeDetectionStrategy.OnPush
selector cx-breadcrumb
templateUrl ./breadcrumb.component.html

Index

Properties
Methods

Constructor

constructor(component: CmsComponentData<CmsBreadcrumbsComponent>, pageMetaService: PageMetaService, translation: TranslationService)
Parameters :
Name Type Optional
component CmsComponentData<CmsBreadcrumbsComponent> No
pageMetaService PageMetaService No
translation TranslationService No

Methods

ngOnInit
ngOnInit()
Inherited from PageTitleComponent
Returns : void
Private setCrumbs
setCrumbs()
Returns : void
Private setTitle
setTitle()
Inherited from PageTitleComponent
Returns : void

Properties

Public component
Type : CmsComponentData<CmsBreadcrumbsComponent>
Inherited from PageTitleComponent
crumbs$
Type : Observable<any[]>
title$
Type : Observable<string>
Inherited from PageTitleComponent
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import {
  CmsBreadcrumbsComponent,
  PageMetaService,
  TranslationService,
} from '@spartacus/core';
import { combineLatest, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { CmsComponentData } from '../../../cms-structure/page/model/cms-component-data';
import { PageTitleComponent } from '../page-header/page-title.component';

@Component({
  selector: 'cx-breadcrumb',
  templateUrl: './breadcrumb.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class BreadcrumbComponent extends PageTitleComponent implements OnInit {
  crumbs$: Observable<any[]>;

  constructor(
    public component: CmsComponentData<CmsBreadcrumbsComponent>,
    protected pageMetaService: PageMetaService,
    private translation: TranslationService
  ) {
    super(component, pageMetaService);
  }

  ngOnInit(): void {
    super.ngOnInit();
    this.setCrumbs();
  }

  private setCrumbs(): void {
    this.crumbs$ = combineLatest([
      this.pageMetaService.getMeta(),
      this.translation.translate('common.home'),
    ]).pipe(
      map(([meta, textHome]) =>
        meta?.breadcrumbs ? meta.breadcrumbs : [{ label: textHome, link: '/' }]
      )
    );
  }
}
<nav>
  <span *ngFor="let crumb of crumbs$ | async">
    <a [routerLink]="crumb.link" [innerHTML]="crumb.label"></a>
  </span>
</nav>
<h1>{{ title$ | async }}</h1>
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""