L'application sur laquelle je travaille contient différents états (en utilisant ui-router), où certains états exigent que vous soyez connecté, d'autres sont accessibles au public.
J'ai créé une méthode qui vérifie valablement si un utilisateur est connecté, ce avec quoi je rencontre actuellement des problèmes est de rediriger vers notre page de connexion si nécessaire. Il convient de noter que la page de connexion n'est actuellement pas placée dans l'application 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");
}
});
});
Le console.log affiche correctement l'URL prévue. La ligne suivante, j'ai essayé pratiquement tout, de $ window.open à window.location.href et peu importe ce que j'ai essayé, aucune redirection ne se produit.
MODIFIER (RÉSOLU):
J'ai trouvé le problème.
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
La variable landingUrl était définie sur «domain.com/login», ce qui ne fonctionnait pas avec $ window.location.href (qui était l'une des choses que j'ai essayées). Cependant, après avoir changé le code en
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
cela fonctionne maintenant.