استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "إضافة الأداة المساعدة usePathname"v10.0.0٢٣/٦/٢٠٢٦
- "تهيئة السجل"v8.2.0٢٢/٦/٢٠٢٦
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
تكامل Angular: توثيق Hook usePathname
يُرجع الـ hook usePathname مسار المتصفح الحالي مع إزالة جزء اللغة، كإشارة (Signal) من نوع Signal<string> في Angular. يُعد هذا مفيدًا لبناء تنقل (navigation) يعتمد على اللغة — على سبيل المثال، لتحديد عنصر التنقل النشط — دون الحاجة إلى إزالة بادئة اللغة يدويًا.
استيراد usePathname في Angular
نسخ الكود إلى الحافظة
import { usePathname } from "angular-intlayer";نظرة عامة
يقوم usePathname بقراءة window.location.pathname، ويزيل بادئة اللغة عبر getPathWithoutLocale، ويُحدّث الإشارة (signal) كلما أطلق المتصفح حدث popstate (التنقل للخلف/للأمام). يستخدم DestroyRef الخاص بـ Angular لتنظيف مستمع الحدث تلقائيًا عند تدمير المكون.
الاستخدام
نسخ الكود إلى الحافظة
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();}القيمة المُرجعة
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| النوع | الوصف |
|---|---|
Signal<string> | إشارة Angular تحتوي على المسار الحالي بدون بادئة اللغة. |
السلوك
- إزالة اللغة: يزيل جزء اللغة الأولي (مثل
/ar/dashboard→/dashboard). - تفاعلي: يتم التحديث تلقائيًا عند أحداث
popstate(تنقل المتصفح للخلف / للأمام). - آمن لـ SSR: يُرجع
""عندما لا يكونwindowمتاحًا. - التنظيف: يتم إزالة مستمع الحدث
popstateعبرDestroyRef.onDestroyعند تدمير المكون المُضيف.
مثال
نسخ الكود إلى الحافظة
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: "لوحة التحكم" }, { href: "/settings", label: "الإعدادات" }, ]; readonly pathname = usePathname();}مواضيع ذات صلة
useLocale— اللغة الحالية + مبدل اللغةgetPathWithoutLocale— الأداة المساعدة الأساسية التي يستخدمها هذا الـ hook