2016-06-30 15 views
25

मैं मार्ग और क्वेरी पैरामीटर के मिश्रण के साथ कोणीय 2 में एक मार्ग पर नेविगेट करने की कोशिश कर रहा हूं।कोणीय 2 राउटर।

{ path: ':foo/:bar/:baz/page', component: AComponent } 

तो जैसी सरणी का उपयोग कर से जोड़ने के लिए प्रयास कर रहा है:

this.router.navigate(['foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams) 

मैं किसी भी त्रुटि नहीं मिल रहा है

यहाँ एक उदाहरण मार्ग जहां मार्ग पथ का अंतिम हिस्सा होता है और जो मैं समझ सकता हूं उससे काम करना चाहिए।

कोणीय 2 डॉक्स (इस समय) एक उदाहरण के रूप में निम्नलिखित है:

{ path: 'hero/:id', component: HeroDetailComponent } 

['/hero', hero.id] // { 15 } 

किसी को भी देख सकते हैं, जहां मैं गलत जा रहा हूँ? मैं राउटर पर हूं 3.

उत्तर

46

यदि पहला सेगमेंट / से शुरू नहीं होता है तो यह एक सापेक्ष मार्ग है।

this.router.navigate(['/foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams) 

या आप पारित relativeTo

this.router.navigate(['../foo-content', 'bar-contents', 'baz-content', 'page'], {queryParams: this.params.queryParams, relativeTo: this.currentActivatedRoute}) 

भी देखें

+1

पता इस सूत्र पुराना है लेकिन मेरी समझ के लिए आसान प्रश्नों की एक जोड़ी: 1. shouldn ऊपर 2 मामले में ' यह 'this.router.navigate (** ['foo ** - content', 'bar-content', ....' (पहले सेगमेंट की शुरुआत में/बिना, यह सापेक्ष है) 2. इस.currentActivatedRoute के अलावा सापेक्ष के लिए अन्य संभावित मूल्य क्या हैं? – Vikas

+0

यदि आप इसे सापेक्ष होना चाहते हैं, तो अग्रणी '/' को छोड़ दें, मुझे इसका इरादा नहीं था। कोई भी मार्ग जिसे आप पथ चाहते हैं उससे संबंधित हो। –

+1

धन्यवाद - लेकिन आपके उत्तर में आपने उल्लेख किया है कि यदि पहला सेगमेंट एक/से शुरू होता है, तो यह एक पूर्ण नेविगेशन है। तो रिश्तेदार की आवश्यकता क्यों होगी? – Vikas

5

import { ActivatedRoute } from '@angular/router'; 
 

 
export class ClassName { 
 
    
 
    private router = ActivatedRoute; 
 

 
    constructor(r: ActivatedRoute) { 
 
     this.router =r; 
 
    } 
 

 
onSuccess() { 
 
    this.router.navigate(['/user_invitation'], 
 
     {queryParams: {email: loginEmail, code: userCode}}); 
 
} 
 

 
} 
 

 

 
Get this values: 
 
--------------- 
 

 
ngOnInit() { 
 
    this.route 
 
     .queryParams 
 
     .subscribe(params => { 
 
      let code = params['code']; 
 
      let userEmail = params['email']; 
 
     }); 
 
}

रेफरी: - https://angular.io/docs/ts/latest/api/router/index/NavigationExtras-interface.html

संबंधित मुद्दे