Angular Breadcrumbs-Komponente | ng-hub-ui-breadcrumbs

Angular Breadcrumbs-Komponente mit Router-Integration, individuellen Templates, RTL-Unterstützung und flexiblen Styling-Tokens.

API-Referenz

Hier ist der vollständige Vertrag für breadcrumbs: alles, was du binden, abhören, projizieren und gestalten kannst, an einem Ort gesammelt. Verdrahte, was du brauchst, und gestalte, was du willst — es ist standalone und Signals-freundlich.

Inputs

Stelle breadcrumbs mit 7 Inputs ein. Binde sie wie jeden Angular-@Input.

NameTypStandardBeschreibung
itemsBreadcrumbItem[] | nullnullVom Konsumenten gelieferter Pfad, der den aus dem Router abgeleiteten ersetzt. Bleibt er null, liest die Komponente weiterhin HubBreadcrumbsService.
variantstring—Semantischer Akzent für die Breadcrumb-Links (z.B. primary, success) oder ein beliebiger eigener Token-Name.
truncateItemsbooleanfalseWenn true, wird jede Beschriftung mit Auslassungspunkten auf --hub-breadcrumb-max-item-width gekürzt und bei Überlauf ein Tooltip gezeigt. Eine hubBreadcrumbItem-Vorlage ist ebenfalls abgedeckt: die Komponente umschließt den projizierten Inhalt mit einem eigenen span.hub-breadcrumb__custom und kürzt diesen, denn gekapselte Styles erreichen keine Elemente, die der konsumierenden Komponente gehören.
maxItemsnumber | undefinedundefinedLänge, ab der sich der Pfad hinter einem Indikator einklappt. Undefined klappt nie ein, wie lang der Pfad auch wird.
itemsBeforeCollapsenumber1Einträge, die am Anfang eines eingeklappten Pfades erhalten bleiben.
itemsAfterCollapsenumber1Einträge, die am Ende eines eingeklappten Pfades erhalten bleiben, einschließlich der aktuellen Seite.
collapsedAriaLabelstring'Show the hidden breadcrumb items'Zugänglicher Name des eingeklappten Indikators, damit die einzige von dieser Komponente angesagte Zeichenkette von der Host-Anwendung übersetzt werden kann.

Outputs

Reagiere darauf, was breadcrumbs tut — 1 Events, an die du deine Logik anknüpfen kannst.

NameTypBeschreibung
collapsedClickvoidWird ausgelöst, wenn der eingeklappte Indikator aktiviert wird. Der Pfad klappt von selbst aus; das Ereignis ist für Konsumenten, die zusätzlich reagieren möchten.

Methoden

Steuere breadcrumbs aus dem Code heraus — 3 Methoden auf der programmatischen Schnittstelle.

NameSignaturRückgabeBeschreibung
HubBreadcrumbsService.breadcrumbsbreadcrumbs: Signal<BreadcrumbItem[]>Signal<BreadcrumbItem[]>Der Pfad als Signal — und die Fläche, die die Komponente selbst liest. Er wird einmal im Service verpackt und einmal für die gesamte Anwendung abonniert, sodass ein Seitenkopf, ein Dokumenttitel oder ein beliebiger anderer Leser ohne async-Pipe davon ableitet.
HubBreadcrumbsService.breadcrumbs$breadcrumbs$: Observable<BreadcrumbItem[]>Observable<BreadcrumbItem[]>Derselbe Pfad als Observable, erhalten für Code, der bereits mit rxjs komponiert. Beide Member melden dieselbe Navigation — nimm den, den der aufrufende Code ohnehin spricht.
provideHubBreadcrumbTooltipprovideHubBreadcrumbTooltip(adapter: HubBreadcrumbTooltipAdapter): EnvironmentProvidersEnvironmentProvidersRegistriert einen Tooltip-Adapter einmalig für die gesamte Anwendung, sodass eine gekürzte Beschriftung den reicheren hub-ui-Tooltip statt des nativen title-Attributs zeigt. Ohne den Provider fallen die Beschriftungen auf title zurück.

Templates

Mach es zu deinem — 2 Template-Slots lassen dich eigenes Markup projizieren.

NameBeschreibungBeispiel
hubBreadcrumbItemBenutzerdefiniertes Template zum Rendern einzelner Breadcrumb-Elemente<ng-template hubBreadcrumbItem let-item let-isLast="isLast"> @if (!isLast) { <a [routerLink]="item.url" class="breadcrumb-link">{{ item.label }}</a> } @else { <span class="breadcrumb-current">{{ item.label }}</span> } </ng-template>
hubBreadcrumbLabelDirektive, die den vollen Text einer gekürzten Beschriftung als Tooltip zeigt. Die Komponente wendet sie auf die Beschriftungen an, die sie rendert, und auf die Box, in die sie eine hubBreadcrumbItem-Vorlage einwickelt; sie selbst zu setzen dient nur dazu, den Tooltip-Text zu überschreiben.<a class="my-crumb" hubBreadcrumbLabel [routerLink]="item.url">{{ item.label }}</a>