2016-11-22 8 views
5

कैसे ठीक से यूआरएल की तरह के बाद एक संरचना बनाने के लिए UrlSearchParams का उपयोग करने के साथ एक ही परम के लिए अनेक मान के साथ यूआरएल क्वेरी बनाने का तरीका:Angular2 UrlSearchParams कोष्ठक

example.org?tag[]=one&tag[]=two&tag[]=other 

नीचे प्रस्तुत के रूप में जब मैं url पैरामीटर का उपयोग करें:

let params = new URLSearchParams(); 
params.append('tag', 'one'); 
params.append('tag', 'two'); 
params.append('tag', 'other'); 

यूआरएल इस तरह दिखता है:

example.org?tag=one&tag=two&tag=other 

यह दृष्टिकोण वेब सर्वर पर कुछ समस्याएं पैदा करता है क्योंकि वे ?tag=one के समान क्वेरी स्ट्रिंग का इलाज करते हैं। यदि कोई ब्रैकेट मौजूद नहीं है तो सर्वर केवल पहला मान प्राप्त करता है।

उत्तर

10

मुझे लगता है कि आप इस के लिए देख रहे हैं:

let params = new URLSearchParams(); 
params.append('tag[]', 'one'); 
params.append('tag[]', 'two'); 
params.append('tag[]', 'other'); 
+0

धन्यवाद, यह काम करता है। –

+1

यह अब काम नहीं करता है, क्योंकि '[]' अब एन्कोड किया गया है। – Moritz

2

मुझे लगता है कि आप इस तरह से कुछ कर सकते हैं, लेकिन मैं इसे परीक्षण नहीं किया:

let params = new URLSearchParams(); 
params.append('tag[0]', 'one'); 
params.append('tag[1]', 'two'); 
params.append('tag[2]', 'other'); 
+0

हाय हम कैसे टैग में कुंजी पारित कर सकते हैं गतिशील। मेरा मतलब एक चर के रूप में है। उदाहरण: 'टैग [कुंजी]'। मैं इसे लूप के लिए उपयोग करना चाहता हूं। –