2016-01-27 7 views
9

में एविगेट करें क्या एन्न्युलर 2 में कोई एपीआई है जो स्ट्रिंग मानों के बजाय जेसन ऑब्जेक्ट्स को पास करने की अनुमति देता है। जैसे Router.navigate() में मैं मार्ग मापदंडोंराउटर के माध्यम से रूटडेटा को कैसे पास करें। Angular2

Router.navigate('routename',[{key:stringvalue}]) 

पारित कर सकते हैं और RouteParams.get(key) : string का उपयोग कर इसे प्राप्त कर सकते हैं। लेकिन यह केवल स्ट्रिंग मान देता है। मुझे जेसन ऑब्जेक्ट को पास करने की ज़रूरत है।

किसी भी संकेत दिए गए

उत्तर

2

मुझे लगता है कि यह बॉक्स से बाहर कुछ संभव नहीं है के बाद से मार्ग यूआरएल पर निर्भर करता है और दोनों पथ चर और क्वेरी पैरामीटर तार कर रहे हैं की सराहना। RouterParams और RouterData दोनों स्ट्रिंग विशेषताओं का समर्थन करते हैं।

इसे अनुकरण करने के लिए, मुझे JSON.stringify का उपयोग करके अपने JSON ऑब्जेक्ट को एन्कोड करने और दूसरी तरफ उन्हें पार्स करने से अन्य समाधान नहीं दिखते हैं।

यहां एक प्लंकर वर्णन है: https://plnkr.co/edit/jbl7v5fHQEmf4F8tpXDO?p=preview

आशा है कि यह आप में मदद करता है, थियरी

+0

RouterParams और RouterData का हिस्सा नहीं हैं @:

अगर आप Router.navigate(['/myRoute',{someProperty:"SomeValue"}] के साथ नेविगेट आप परम साथ उपयोग कर सकते हैं। – eomeroff

6

एक अन्य समाधान है कि काम करता है RouterParams की params संपत्ति का उपयोग कर रहा है। यह पसंदीदा तरीका नहीं हो सकता है, लेकिन यह काम करता है (बीटा 8 के रूप में)। कोणीय/रूटर किसी भी अधिक

constructor(routeParams: RouteParams){ 
    let myPassedData: any = routeParams.params; 
    console.log(myPassedData.someProperty); #Prints "SomeValue" 
} 
संबंधित मुद्दे