Aplikasi yang saya kerjakan berisi berbagai status (menggunakan ui-router), di mana beberapa negara mengharuskan Anda untuk masuk, yang lain tersedia untuk umum.
Saya telah membuat metode yang secara valid memeriksa apakah pengguna masuk, apa yang saat ini saya alami adalah mengalihkan ke halaman masuk kami bila perlu. Perlu dicatat bahwa halaman login saat ini tidak ditempatkan di dalam aplikasi 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");
}
});
});
Console.log menunjukkan url yang dimaksud dengan benar. Baris setelah itu, saya telah mencoba hampir semuanya dari $ window.open hingga window.location.href dan tidak peduli apa yang saya coba, tidak ada pengalihan yang terjadi.
EDIT (TERSELESAIKAN):
Menemukan masalahnya.
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
Variabel landingUrl disetel ke 'domain.com/login', yang tidak akan berfungsi dengan $ window.location.href (yang merupakan salah satu hal yang saya coba). Namun setelah mengubah kode menjadi
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
sekarang bekerja.