AngularJS - मैं एक पूर्ण पृष्ठ लोड के साथ पुनर्निर्देशित कैसे कर सकता हूं?


94

मैं एक रीडायरेक्ट करना चाहता हूं जो एक पूर्ण पृष्ठ पुनः लोड करता है ताकि पृष्ठ लोड होने पर मेरे वेब सर्वर से कुकीज़ ताज़ा हो जाएं। window.location = "/#/Next"और window.location.href = "/#/Next"काम नहीं करते, वे एक कोणीय मार्ग करते हैं जो सर्वर को हिट नहीं करता है।

कोणीय नियंत्रक के भीतर एक पूर्ण सर्वर अनुरोध करने का सही तरीका क्या है?


8
क्या तुमने कभी इसे हल किया?
सुपरजोस

7
क्या तुमने कभी इसे हल किया?
नॉलवेनिग

6
क्या तुमने कभी इसे हल किया?
डैन ब्यूलियू

5
क्या तुमने कभी इसे हल किया?
मेरा स्टैक

4
क्या तुमने कभी इसे हल किया?
शाहज़ैन अली

जवाबों:


183

के लिए <a>टैग :

आपको target="_self"अपने <a>टैग पर चिपकना होगा

ऐसे तीन मामले हैं जहाँ AngularJS पूर्ण पृष्ठ पुनः लोड करेगा:

  • ऐसे लिंक जिनमें लक्ष्य तत्व शामिल हैं
    उदाहरण:<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
  • पूर्ण लिंक जो एक अलग डोमेन पर जाते हैं
    उदाहरण:<a href="http://angularjs.org/">link</a>
  • आधार परिभाषित होने पर एक अलग आधार पथ पर ले जाने वाले '/' से शुरू होने वाले लिंक
    उदाहरण:<a href="https://stackoverflow.com/not-my-base/link">link</a>

जावास्क्रिप्ट का उपयोग करना :

$locationसेवा आप परिवर्तन केवल यूआरएल के लिए अनुमति देता है; यह आपको पृष्ठ को फिर से लोड करने की अनुमति नहीं देता है। जब आपको URL बदलने और पृष्ठ को पुनः लोड करने या किसी भिन्न पृष्ठ पर नेविगेट करने की आवश्यकता हो, तो कृपया निम्न स्तर का एपीआई का उपयोग करें $window.location.href:।

देख:


15
$ window.location.href वही कार्य करता है जो window.location.href करता है। मुझे पूरा यकीन है कि $ विंडो खिड़की के लिए सिर्फ एक रैपिंग सेवा है। किसी भी तरह से दोनों पूर्ण पृष्ठ ताज़ा करने के बजाय एक कोणीय मार्ग करते हैं।
फरवरी को माइक पैटरस

3
$ window.location.href निश्चित रूप से एक पूर्ण पृष्ठ ताज़ा करने का कारण बनता है, मैं इसे अपने ऐप में कर रहा हूं।
jszobody 19

3
मैंने वही पढ़ा है। Chrome के वर्तमान संस्करण में काम नहीं करता है। यह एक कोणीय मार्ग करता है।
फरवरी को माइक पैटरस

1
सीडीएन से 1.0.6। मैं एक $ http.post सफलता कॉलबैक के भीतर कर रहा हूँ, अगर वह मायने रखता है, हालांकि मैंने इसे कॉलबैक से बाहर की कोशिश की है और वही परिणाम प्राप्त किए हैं। यदि मैं "/" (जो कि मेरे पास एक कोणीय मार्ग भी है) के लिए पुनर्निर्देशित करता है, तो यह पूर्ण पृष्ठ ताज़ा करने के साथ काम करता है, लेकिन "/ # / अगला" बस दृश्य बदलता है।
माइक पैटरस

5
<a href="..." target="_self">मेरे लिए काम किया है। धन्यवाद !
माइकल

33

हमारे पास एक ही मुद्दा था, जेएस कोड (यानी HTML एंकर से नहीं) से काम करना। हमने इसे हल किया है:

  1. यदि आवश्यक हो, वस्तुतः के माध्यम से वर्तमान URL बदल $locationसेवा। यह उपयोगी हो सकता है यदि आपकी मंजिल वर्तमान URL पर केवल एक भिन्नता है, ताकि आप $locationसहायक विधियों का लाभ उठा सकें । उदाहरण के लिए, हम $location.search(..., ...)एक झगड़ालू पैरामाटर के मूल्य को बदलने के लिए दौड़े ।

  2. $location.url()यदि आवश्यक हो तो वर्तमान का उपयोग करके, नया गंतव्य URL बनाएँ । काम करने के लिए, इस नए को स्कीमा, डोमेन और पोर्ट के बाद सब कुछ शामिल करना था। इसलिए यदि आप चाहते हैं:

    http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en

    फिर आपको URL इस रूप में सेट करना चाहिए:

    var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';

    (अग्रणी के '/'साथ ही)।

  3. निम्न-स्तर पर नया गंतव्य URL असाइन करें :$window.location.href = destinationUrl;

  4. फोर्स लोड, अभी भी निम्न-स्तर पर है: $window.location.reload();


1
यह Chrome 38 के साथ कोणीय 1.3.1 में मेरे लिए काम नहीं करता है। जब मैं कोई पथ या पूर्ण URL असाइन करता हूं, तो $ window.location.href का मान परिवर्तित नहीं होता है। केवल $ window.location.assign () ने मेरे लिए काम किया।
फेलिक्सएम

फेलिक्स जैसी ही समस्याएँ होने के कारण, इसे अलग तरीके से हल किया। stackoverflow.com/questions/31137809/…
सोरहस हाकामी

13

खोज और हिट और ट्रायल सेशन देने के बाद, मैं पहले url को निर्दिष्ट करके इसे हल करने में सक्षम हूं

$window.location.href = '/#/home/stats';

फिर पुनः लोड करें

$window.location.reload();

यह समस्या को ठीक करने के लिए लगता है, लेकिन ब्राउज़र पर आगे और पीछे क्लिक करने से बहुत सारी विसंगतियां होंगी।
luisluix

9

मेरी भी यही समस्या थी। जब मैं उपयोग करता हूं window.location, $window.locationया यहां तक <a href="..." target="_self">कि मार्ग पृष्ठ को ताज़ा नहीं करता है। तो कैश्ड सेवाओं का उपयोग किया जाता है जो कि मैं अपने ऐप में नहीं चाहता हूं। रूटिंग के बाद पेज को फिर से लोड करने के लिए मजबूर करने के window.location.reload()बाद जोड़कर मैंने इसे हल किया window.location। यह तरीका पृष्ठ को दो बार लोड करने के लिए लगता है। एक गंदा चाल हो सकता है, लेकिन यह काम करता है। यह मेरे पास अभी है:

  $scope.openPage = function (pageName) {
      window.location = '#/html/pages/' + pageName;
      window.location.reload();
  };

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.