2016-09-08 21 views
6
const APP_ROUTES: RouterConfig = [ 

    { 

     path: 'app/home', 
     component: HomeComponent, 
     data: { 
      name: 'Home' 
     } 

    } 


] 

यदि मेरे पास रूट कॉन्फ़िगरेशन है, तो मैं कुछ निर्देशों से data संपत्ति को कैसे एक्सेस करूं?कोणीय 2

@Directive({ 
    name: 'hello' 
}) 

class HelloDirective { 
@Input('routerLink') link: string[]; 

ngOnInit() { 
    //HOW CAN I GET ROUTE AND ITS DATA FROM PATH/URL ??? 

    //const magicallyGrabbedRoute = pleaseGiveMeMyRouteFrom(this.link); 
    //const myData = magicallyGrabbedRoute.data; 

} 

} 

<a hello [routerLink]="['app/home']"> Go Home </a> 

hello निर्देश में मैं routerLink विशेषता के मूल्य के लिए मार्ग विन्यास कैसे मिल सकता है?

+0

क्या आप इस @Lekhnath के समाधान के साथ आए थे? – Spikeh

+0

@ स्पीकह दुख की बात है कि मैं इसके लिए कोई समाधान नहीं समझ सका। – Lekhnath

उत्तर

1

आप इसे अपने घटक वर्ग के अंदर डालकर मार्ग पैरामीटर पर सब्सक्राइब कर सकते हैं। & तुम भी this.route.snapshot.data इस्तेमाल कर सकते हैं मार्ग defination में पारित डेटा पुनः प्राप्त करने निर्माता

this.sub = this.route 
    .params //.data //--> use data to retrieve route data 
    .subscribe(params => { 
    console.log(params['id']); 
    }); 

में private route: ActivatedRoute है।

+0

इस उत्तर में मेरी समस्या को हल करने की कमी है। मुझे किस लिंक को कुछ लिंक प्रदान करना चाहिए ताकि यह मुझे एक मार्ग/मार्ग कॉन्फ़िगरेशन/रूटडाटा बदले में दे। यह कोई भी लिंक न केवल वर्तमान/सक्रिय मार्ग हो सकता है। – Lekhnath

+0

मुझे 'रूटडाटा' कहां मिल सकता है यह @ कोणीय/राउटर @ 3.0.0-बीटा 2' में नहीं है? – Lekhnath

+1

'पैराम्स' को 'डेटा' – mrgoos

5

(RC6):

अपने निर्माता में

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

तब:: आप आयात करने की आवश्यकता

constructor(private route: ActivatedRoute) { }

वर्ग implements OnInit चाहिए इस तरह से:

ngOnInit() { const myData = this.route.snapshot.data['name']; }

यदि आपका यूआरएल गतिशील नहीं है तो यह है। यदि गतिशील आपको एक पर्यवेक्षक का उपयोग करना चाहिए और स्नैपशॉट नहीं करना चाहिए। पी। माता-पिता के माता-पिता के लिए बस उपयोग करें: this.route.snapshot.parent.data['name']

+0

इसका उपयोग सक्रिय मार्ग डेटा तक पहुंचने के लिए किया जा सकता है लेकिन मैं कुछ रूट घटक से सक्रिय मार्ग का डेटा प्राप्त करने की कोशिश नहीं कर रहा हूं बल्कि मैं कुछ लिंक से रूट डेटा प्राप्त करने का प्रयास कर रहा हूं, कहता हूं: ['app/home']। – Lekhnath

+0

अच्छा, अगर यह माता-पिता में से एक है तो आप सुझाए गए अनुसार 'this.route.snapshot.parent.data [' name ']' का उपयोग कर सकते हैं। यदि नहीं, तो आप यहां सुझाए गए किसी अन्य घटक संचार का उपयोग कर सकते हैं: https://angular.io/docs/ts/latest/cookbook/component-communication.html। सर्वश्रेष्ठ सेवा आईएमओ के माध्यम से हो सकता है। – mrgoos

+2

कृपया मेरी 'ngOnInit' मार्ग विधि देखें कि मैं 'routerLink' विशेषता मान प्राप्त करने का प्रयास कैसे कर रहा हूं और उस मान के आधार पर मैं रूट कॉन्फ़िगरेशन का उपनाम चाहता हूं जो लिंक/पथ को मानचित्र करता है। – Lekhnath