Auteur:
    Création:2026-06-22Dernière mise à jour:2026-06-22

    Intégration Angular : Documentation du Hook usePathname

    Le hook usePathname retourne le chemin de navigation actuel du navigateur avec le segment de locale supprimé, sous forme de Signal<string> Angular. Il est utile pour construire une navigation tenant compte de la locale — par exemple, pour déterminer quel élément de navigation est actif — sans avoir à supprimer manuellement le préfixe de la locale.

    Importer usePathname dans Angular

    typescript
    import { usePathname } from "angular-intlayer";
    

    Aperçu

    usePathname lit window.location.pathname, supprime le préfixe de la locale via getPathWithoutLocale, et met à jour le signal chaque fois que le navigateur déclenche un événement popstate (navigation retour/avant). Il utilise DestroyRef d'Angular pour nettoyer automatiquement l'écouteur d'événements lorsque le composant est détruit.

    Utilisation

    src/app/nav-item.component.ts
    import { Component, input } from "@angular/core";
    import { usePathname } from "angular-intlayer";
    
    @Component({
      standalone: true,
      selector: "app-nav-item",
      template: `
        <a
          [href]="href()"
          [attr.aria-current]="pathname() === href() ? 'page' : null"
        >
          {{ label() }}
        </a>
      `,
    })
    export class NavItemComponent {
      readonly href = input.required<string>();
      readonly label = input.required<string>();
    
      readonly pathname = usePathname();
    }
    

    Valeur de retour

    Type Description
    Signal<string> Signal Angular contenant le chemin actuel sans le préfixe de la locale.

    Comportement

    • Suppression de la locale : Supprime le segment de locale initial (ex. /fr/dashboard/dashboard).
    • Réactif : Se met à jour automatiquement lors d'événements popstate (navigation retour / avant du navigateur).
    • Compatible SSR : Retourne "" lorsque window n'est pas disponible.
    • Nettoyage : L'écouteur popstate est supprimé via DestroyRef.onDestroy lorsque le composant hôte est détruit.

    Exemple

    src/app/sidebar.component.ts
    import { Component } from "@angular/core";
    import { usePathname } from "angular-intlayer";
    
    @Component({
      standalone: true,
      selector: "app-sidebar",
      template: `
        <nav>
          @for (link of links; track link.href) {
            <a
              [href]="link.href"
              [style.font-weight]="pathname() === link.href ? 'bold' : 'normal'"
            >
              {{ link.label }}
            </a>
          }
        </nav>
      `,
    })
    export class SidebarComponent {
      readonly links = [
        { href: "/dashboard", label: "Dashboard" },
        { href: "/settings", label: "Settings" },
      ];
    
      readonly pathname = usePathname();
    }
    

    Liens associés