2016-04-14 7 views
5

मैं एक सी # WebApi द्वारा समर्थित Angular2 बीटा 15 का उपयोग कर डेवलपर्स द्वारा उपयोग के लिए एक आंतरिक उपकरण लिख रहा हूं।';' के बजाय क्वेरीरीस्ट्रिंग का उपयोग कैसे करें

अप

मैं Angular2 संस्करण के रूप में नए संस्करणों

जारी कर रहे हैं मैं 1 दिन से मार्ग का उपयोग किया गया लेकिन अब मैं वैकल्पिक पैरामीटर जोड़ने की जरूरत है। आमतौर पर यह क्वेरीस्ट्रिंग के माध्यम से किया जाता है।

हालांकि, Angular2 तो जैसे क्वेरी स्ट्रिंग से पहले वैकल्पिक पैरामीटर शामिल हैं:

http://www.example.com;a=b;c=4 

मूल रूप से मैं लगा कि ठीक होगा, भले ही यह है कि मैं क्या करने के लिए इस्तेमाल कर रहा हूँ नहीं है। हालांकि, अब मैं उन मामलों में चला गया हूं जहां मुझे "संभावित रूप से खतरनाक अनुरोध। पैथ मान [ओं]" जैसे "*" (नियमित अभिव्यक्ति खोज फ़ील्ड के साथ लिंक सहेजने के लिए पूर्व-जनसंख्या वाले) की आवश्यकता है। एक अलग प्रतीक

  1. स्थानापन्न * के लिए - इसका मतलब है कि डेवलपर्स मुक्त हाथ करने के लिए विशेष प्रतीक एक यूआरएल पता होना चाहिए:

    मैं सहित कई सुधारों के बारे में सोच सकते हैं।

  2. यूआरएल पैरामीटर एन्कोड करें - इसका मतलब है कि डेवलपर्स को यूआरएल एन्कोडेड वैल्यू को यूआरएल मुक्त करने के लिए जानना चाहिए।
  3. उन पैरामीटर को बहिष्कृत करें जब उनके पास विशेष वर्ण हों - पृष्ठ अभी भी तोड़ता है जब कोई डेवलपर * का उपयोग करके यूआरएल को मुक्त करता है।
  4. क्वेरी-स्ट्रिंग पैरामीटर से प्री-क्वेरीस्ट्रिंग पैरामीटर से स्विच करें।
  5. मैन्युअल रूप से क्वेरीस्ट्रिंग को नियंत्रित करें।

सबसे सरल नियमित अभिव्यक्ति क्वेरीस्ट्रिंग में एन्कोडिंग के बिना पूरी तरह मान्य हैं, इसका मतलब है कि दोनों (4) और (5) वैध समाधान हैं।

(5) संभव है, लेकिन मैं कल्पना नहीं कर सकता कि मैं अकेला हूं जो इस मुद्दे में भाग गया है। यदि कोई आधिकारिक समाधान मौजूद है तो मैं अपना खुद का कामकाज नहीं बनाऊंगा।

(4) मेरा पसंदीदा समाधान है। मैंने पाया है कि पुराने उदाहरणों में से कई क्वेरीस्ट्रिंग में वैकल्पिक पैरामीटर दिखाते हैं, इसलिए मुझे उम्मीद है कि तर्क अभी भी बना हुआ है और अर्ध-कॉलन संस्करण केवल डिफ़ॉल्ट विकल्प है।

क्या अर्ध-कॉलन सीमांकित सामग्री के बजाय क्वेरीस्ट्रिंग पैरामीटर का उपयोग करने के लिए राउटर को यह बताना संभव है?

मैंने angular.io और stackoverflow दोनों की खोज की और इस सवाल से कोई जवाब या कोई भी नहीं मिला।

धन्यवाद।

उत्तर

1

जड़ रूटर वैकल्पिक पैरामीटर क्वेरी स्ट्रिंग में प्रतिनिधित्व कर रहे हैं, बच्चे रूटर के लिए वे मैट्रिक्स पैरामीटर के रूप में जुड़ जाते हैं (आप क्या दिखाया)

भी ROUTING & NAVIGATION

+0

बाल राउटर को खत्म करने के अलावा, क्या मैट्रिक्स पैरामीटर को बंद करने के लिए वैसे भी है? – JALLRED

+0

नहीं, वर्तमान में यह समर्थित नहीं है। Https://github.com/angular/angular/issues/7616 भी देखें –

7

देखें आप इस कोशिश कर सकते हैं के लिए:

<a [routerLink]="['/users']" [queryParams]="{q:'ABC', location:2929}">Test</a> 

यह आप की तरह http://www.example.com/users?q=ABC&location=2929

गुड लक एक मार्ग दे देंगे।

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