2014-06-12 12 views
19

में $ location.path() के साथ Querystring का उपयोग कैसे करें मैं क्वेरी स्ट्रिंग का उपयोग करके सफल लॉगिन के बाद उपयोगकर्ता को किसी अन्य पृष्ठ पर रीडायरेक्ट करना चाहता हूं। यदि मैं & कॉपी करता हूं तो ब्राउज़र के पता बार पर पेस्ट करें http://example.com/#/login?ref=/path/to/redirect यह ठीक काम करता है। लेकिन अगर मैंAngularJS

$location.path("/login?ref=/path/to/redirect"); 

का उपयोग यूआरएल लग रहा है

तरह
http://example.com/#/login%3Fref=/path/to/redirect 

मैं कैसे% 3F को डिकोड कर सकते हैं '?' ? धन्यवाद

+0

क्या आप यूई-राउटर का उपयोग कर रहे हैं? आपको $ state.go ('state', {ref: 'params'} करने और क्वेरी स्ट्रिंग में पास करने में सक्षम होना चाहिए। –

+3

यहां देखें: http://stackoverflow.com/questions/15197837/how-to-pass -क्वेशन-मार्क-इन-यूआरएल-जावास्क्रिप्ट – Andy

+0

धन्यवाद @ एंडी यह काम करता है! – aikutto

उत्तर

42

यह

$location.path('/login').search('ref', '/path/to/redirect') 
+2

दुर्भाग्यवश यह काम नहीं करता है अगर आपके पास पुनः लोड किया गया है तो खोज मार्ग पर गलत पर सेट है। कोणीय इसे एक पुनः लोड मानता है चूंकि यह एक साथ सेट नहीं है। मुझे इसके लिए angular.js में खोलना और जारी करना चाहिए, लेकिन क्या आपके पास पथ और क्वेरी को एक साथ सेट करने का विकल्प है (स्थान वस्तु को सीधे सेट करने के अलावा जो पूर्ण रीलोड का कारण बनता है) – parliament

+0

क्या होगा यदि आप कुछ सामान्य घटक हैं, जो क्वेरी के बारे में कुछ भी नहीं जानते हैं स्ट्रिंग सामग्री? फिर आप इसे कैसे पारित कर सकते हैं? – Eugene

0

मैं एक ही समस्या थी होना चाहिए।

मैं पथ बदलना चाहता हूं और एक ही समय में खोजना चाहता हूं।

यह ऐसा करने से संभव है:

$location.$$search ={foo:'bar', buz:'buz'} 
$location.$$path = '/some/path' 
$location.$$compose() 

यह दर्ज नहीं किया गया है और यह किसी भी नए कोणीय संस्करण में तोड़ दिया सकता है।