2013-09-16 20 views
17

पढ़ने और URL से एक क्वेरी स्ट्रिंग मूल्य के प्रसंस्करण के बाद में क्वेरी स्ट्रिंग निकाला जा रहा है उदाहरण, AngularJS

http://myurl.com/#/?foo=baa 

के लिए मैं

$location.search('myQueryStringParameter', ''); 
का उपयोग करके

http://myurl.com/#/?foo= 

को URL बदल सकते हैं

मैं क्वेरी-स्ट्रिंग को पूरी तरह से कैसे छुटकारा पा सकता हूं (बिना स्पष्ट रीडायरेक्ट या सर्वर साइड एक्शन और इतने पर) ताकि केवल

http://myurl.com/#/ 

ब्राउज़र में बना रहता है? यह काफी सरल होना चाहिए, लेकिन मुझे कोई संदर्भ नहीं मिल रहा है।

उत्तर

24

इस प्रयास करें:

$location.url($location.path()) 

अधिक जानकारी के लिए documentation देखें।

+0

में के रूप में internaly भी ऐसा ही करने के लिए है! धन्यवाद, ठीक वैसे ही काम करता है जैसा इसे करना चाहिए। – Olaf

+6

लेकिन यह पृष्ठ – saf

+0

को पुनः लोड करता है यह सभी क्वेरीस्ट्रिंग कुंजी/मान-एस को साफ़ करता है। क्या होगा यदि मैं सिर्फ उनमें से केवल एक को हटाना चाहता हूं? – Korayem

34

आप करीब थे, आप अशक्त

$location.search('myQueryStringParameter', null); 

स्थापित करने के लिए से ng.$location documentation

तो खोज एक स्ट्रिंग है, तो paramValue केवल एक ही खोज पैरामीटर को पार कर जाएगी की जरूरत है। यदि paramValue एक सरणी है, तो यह पैरामीटर को अल्पविराम से अलग मूल्य के रूप में सेट करेगा। यदि paramValue शून्य है, तो पैरामीटर हटा दिया जाएगा।

+1

कूल, धन्यवाद। काम करने लगता है। – Olaf

+0

किसी कारण से यह मेरे सभी पैरामीटर हटा रहा है। अगर मेरे पास नाम = ओली और स्थिति = आगे है और मैं $ location.search (स्थिति, शून्य) कहता हूं, सबकुछ हटा दिया जाता है। – Alessandro

+1

@Alessandro यदि आप एक परीक्षण प्रोजेक्ट बना सकते हैं जो इसे पुन: उत्पन्न करता है तो इसे एक बग के रूप में लॉग करें। यह मेरे लिए लंबे समय तक (कोणीय भूमि में) समय के लिए दस्तावेज के रूप में काम किया है। – toxaq

-2

कोशिश इस

$location.url('/'); 

अधिक जानकारी के लिए documentation देखें।

+0

यह उपयोगकर्ता को रूट पथ पर रीडायरेक्ट करेगा और यह वह नहीं है जो ओपी चाहता था। – Ashwin

4

सबसे आसान समाधान $ location.url

$location.search('') 
बेशक