मैं जिस ऐप पर काम कर रहा हूं उसमें विभिन्न राज्य (यूआई-राउटर का उपयोग करना) शामिल हैं, जहां कुछ राज्यों को आपको लॉग इन करने की आवश्यकता होती है, अन्य सार्वजनिक रूप से उपलब्ध हैं।
मैंने एक विधि बनाई है जो वैध रूप से जांचती है कि कोई उपयोगकर्ता लॉग इन है या नहीं, वर्तमान में मेरे पास जो समस्याएँ हैं वे वास्तव में आवश्यक होने पर हमारे लॉगिन-पेज पर पुनः निर्देशित कर रहे हैं। यह ध्यान दिया जाना चाहिए कि लॉगिन पृष्ठ को वर्तमान में AngularJS ऐप के भीतर नहीं रखा गया है।
app.run(function ($rootScope, $location, $window) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
if (toState.data.loginReq && !$rootScope.me.loggedIn) {
var landingUrl = $window.location.host + "/login";
console.log(landingUrl);
$window.open(landingUrl, "_self");
}
});
});
कंसोल .log इच्छित url को ठीक से दिखाता है। उसके बाद की लाइन, मैंने $ window से व्यावहारिक रूप से सब कुछ करने की कोशिश की है। to window.location.href और कोई फर्क नहीं पड़ता कि मैंने क्या किया है कोई पुनर्निर्देशन नहीं हुआ है।
संपादित करें (पंजीकृत):
मुद्दा मिल गया।
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
वेरिएबल लैंडिंगयूआरएल को 'domain.com/login' पर सेट किया गया था, जो $ window.location.href (जो कि मेरी कोशिश की गई चीजों में से एक था) के साथ काम नहीं करेगा। हालाँकि कोड बदलने के बाद
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
अब यह काम करता है।