राउटरलिंक के लिए एक पैरामीटर कैसे पास करें जो URL के अंदर कहीं है?


208

मुझे पता है कि मैं routerLinkइस तरह के मार्गों के लिए एक पैरामीटर पारित कर सकता हूं

/user/:id

लेखन से

[routerLink]="['/user', user.id]"

लेकिन इस तरह के मार्गों के बारे में क्या:

/user/:id/details

क्या इस पैरामीटर को सेट करने का कोई तरीका है या मुझे एक अलग URL योजना पर विचार करना चाहिए?

जवाबों:


347

अपने विशेष उदाहरण में आप निम्नलिखित कार्य करेंगे routerLink:

[routerLink]="['user', user.id, 'details']"

नियंत्रक में ऐसा करने के लिए, आप इंजेक्शन Routerऔर उपयोग कर सकते हैं:

router.navigate(['user', user.id, 'details']);

रूटिंग एंड नेविगेशन के कोणीय डॉक्स लिंक पैरामीटर्स एरे सेक्शन में अधिक जानकारी


क्या आप कोई लिंक प्रदान कर सकते हैं, जहाँ मुझे इस बारे में अधिक जानकारी मिल सकती है ..
Refactor

4
@CleanCrispCode आप इसके बारे में अधिक राउटर गाइड में कोणीय डॉक्स में पढ़ सकते हैं: angular.io/docs/ts/latest/guide/…
Wojciech Kwiatek

<button mat-button routerLink="...">View user</button>वाक्य रचना के बारे में क्या ?
स्टीफन

33

हो सकता है कि यह वास्तव में देर से जवाब हो लेकिन अगर आप परम के साथ एक और पेज नेविगेट करना चाहते हैं,

[routerLink]="['/user', user.id, 'details']"

यह भी आप की तरह रूटिंग config के बारे में नहीं भूलना चाहिए,

 [path: 'user/:id/details', component:userComponent, pathMatch: 'full']

11

पहले तालिका में कॉन्फ़िगर करें:

const routes: Routes = [  
{
  path: 'class/:id/enrollment/:guid',
  component: ClassEnrollmentComponent
 }
];

अब टाइप स्क्रिप्ट कोड में:

this.router.navigate([`class/${classId}/enrollment/${4545455}`]);

किसी अन्य घटक में परम प्राप्त करें

 this.activatedRoute.params.subscribe(params => {
  let id = params['id'];
  let guid = params['guid'];

  console.log(`${id},${guid}`);
  });

0

इसे प्राप्त करने के कई तरीके हैं।

  • [राऊटरलिंक] निर्देश के माध्यम से
  • राउटर वर्ग का नेविगेट (सरणी) विधि
  • नेविगेटबायुआर (स्ट्रिंग) विधि जो एक स्ट्रिंग लेती है और एक वादा वापस करती है

राउटरलिंक विशेषता से आपको रूटिंग मोड को फीचर मॉड्यूल में आयात करने की आवश्यकता होती है, जब आप फीचर मॉड्यूल को लोड करते हैं या सिर्फ ऐप-रूटिंग-मॉड्यूल को आयात करते हैं यदि यह स्वचालित रूप से AppModule आयात सरणी में नहीं जोड़ा जाता है।

  • RouterLink
<a [routerLink]="['/user', user.id]">John Doe</a>
<a routerLink="urlString">John Doe</a> // urlString is computed in your component
  • नेविगेट
// Inject Router into your component
// Inject ActivatedRoute into your component. This will allow the route to be done related to the current url
this._router.navigate(['user',user.id], {relativeTo: this._activatedRoute})
  • NavigateByUrl
this._router.navigateByUrl(urlString).then((bool) => {}).catch()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.