2013-07-07 5 views
70

मेरा कोणीय ऐप उपयोगकर्ता को एक आइटम लोड करने की अनुमति देता है, और जब ऐसा होता है तो मैं एक क्वेरी स्ट्रिंग सेट करना चाहता हूं जिसमें आइटम का आईडी होता है ताकि यदि उपयोगकर्ता पृष्ठ को रीफ्रेश करता है (या उससे लिंक करना चाहता है), यूआरएल पहले से सेट है (पहले से ही कोड है जो आइटम को लोड करता है यदि आईडी $ रूट में मौजूद है)।मैं मार्ग के बिना AngularJS में एक क्वेरी पैरामीटर कैसे सेट कर सकता हूं?

मैं मार्ग के बिना उस क्वेरी पैरामीटर को कैसे सेट कर सकता हूं? पृष्ठ पर अन्य चीजें हैं जो रीसेट हो जाएंगी (एक प्लगइन सहित जो इसके सभी डेटा को फिर से लोड करना होगा) यदि कोई मार्ग होता है, तो यह महत्वपूर्ण है कि केवल क्वेरी पैरामीटर बदल जाए।

छोटा है, जब मैं आइटम 123 लोड में, मैं क्या करना चाहते है कि से URL परिवर्तन:

www.myurl.com/#/Items

रहे हैं:

www.myurl.com/#/Items?id=123

किसी भी routin बिना जी जगह ले रहा है।

ऐसा करने का सबसे अच्छा तरीका क्या है?

उत्तर

161

अपने $routeProvider विन्यास में गलत पर reloadOnSearch सेट:

$routeProvider 
    .when('/items', { 
    controller: 'ItemsCtrl', 
    templateUrl: '/templates/items', 
    reloadOnSearch: false 
    }, 
    ... 
); 

और अपने नियंत्रक उपयोग $location.search() में id परम स्थापित करने के लिए:

$location.search('id', 123); 
+4

मैं जब क्वेरी की स्थापना वास्तव में कुछ अजीब व्यवहार किया था string.''reloadOnSearch: false''' मेरे लिए कुंजी थी। –

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