Die App, an der ich arbeite, enthält verschiedene Status (mithilfe des UI-Routers). In einigen Status müssen Sie angemeldet sein, in anderen sind sie öffentlich verfügbar.
Ich habe eine Methode erstellt, die überprüft, ob ein Benutzer angemeldet ist. Derzeit habe ich Probleme damit, bei Bedarf tatsächlich auf unsere Anmeldeseite umzuleiten. Es ist zu beachten, dass die Anmeldeseite derzeit nicht in der AngularJS-App platziert ist.
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");
}
});
});
Das console.log zeigt die beabsichtigte URL korrekt an. In der Zeile danach habe ich praktisch alles von $ window.open bis window.location.href ausprobiert und egal was ich versucht habe, es findet keine Umleitung statt.
BEARBEITEN (BEHOBEN):
Fand das Problem.
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
Die Variable landingUrl wurde auf 'domain.com/login' gesetzt, was mit $ window.location.href nicht funktionieren würde (was eines der Dinge war, die ich versucht habe). Allerdings nach dem Ändern des Codes auf
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
es funktioniert jetzt.
location
Objekt mit$window.location=...