البرمجة

Clear Angular 2 Router QueryParams

عند استخدام توجيه المسار في Angular 2 مع معلمات الاستعلام (queryParams)، يمكنك تفادي المشكلة التي تواجهها عن طريق تعيين المعلمات إلى قيمة فارغة عند الانتقال إلى المسار الجديد. يمكنك فعل ذلك على النحو التالي:

typescript
this._router.navigate(['/login'], {queryParams: {redirect: ''}});

هذا سيؤدي إلى إزالة معلمة redirect من عنوان URL عند التوجيه إلى مسار /login. كما يمكنك استخدام نفس الأسلوب لتجنب إضافة معلمات جديدة إلى عناوين URL السابقة. لذا، عند التوجيه إلى /another-route، يمكنك استخدام:

typescript
this._router.navigate(['/another-route'], {queryParams: {redirect: ''}});

بهذه الطريقة، ستكون قد قمت بتعيين قيمة فارغة لمعلمة redirect مما يزيلها من العنوان الحالي.

المزيد من المعلومات

بالطبع! عند التعامل مع معلمات الاستعلام في Angular 2 Router، يمكنك أيضًا استخدام NavigationExtras لتحديد كيفية التعامل مع المعلمات الحالية والجديدة. على سبيل المثال، يمكنك استخدام merge: false لتجنب دمج المعلمات مع المعلمات الحالية:

typescript
import { NavigationExtras } from '@angular/router'; // Create NavigationExtras with merge set to false const navigationExtras: NavigationExtras = { queryParams: { redirect: 'route2' }, queryParamsHandling: 'merge', preserveFragment: true, // Avoid merging with current queryParams merge: false }; // Navigate to '/another-route' without merging queryParams this._router.navigate(['/another-route'], navigationExtras);

باستخدام merge: false، ستقوم بتجاهل المعلمات الحالية واستخدام فقط المعلمات التي تم توفيرها في queryParams لعنوان URL الجديد.

زر الذهاب إلى الأعلى