แอปที่ฉันใช้งานมีสถานะต่างๆ (โดยใช้ ui-router) ซึ่งบางรัฐกำหนดให้คุณต้องเข้าสู่ระบบส่วนสถานะอื่น ๆ จะเปิดเผยต่อสาธารณะ
ฉันได้สร้างวิธีการที่ตรวจสอบได้อย่างถูกต้องว่าผู้ใช้เข้าสู่ระบบหรือไม่สิ่งที่ฉันกำลังมีปัญหาคือการเปลี่ยนเส้นทางไปยังหน้าการเข้าสู่ระบบของเราเมื่อจำเป็น ควรสังเกตว่าขณะนี้หน้าล็อกอินไม่ได้อยู่ในแอป 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 แสดง url ที่ต้องการอย่างถูกต้อง บรรทัดหลังจากนั้นฉันได้ลองใช้งานจริงทุกอย่างตั้งแต่ $ window.open ไปจนถึง window.location.href และไม่ว่าฉันจะพยายามอย่างไรก็ไม่มีการเปลี่ยนเส้นทางเกิดขึ้น
แก้ไข (แก้ไขแล้ว):
พบปัญหา
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
LandingUrl ตัวแปรถูกตั้งค่าเป็น 'domain.com/login' ซึ่งใช้ไม่ได้กับ $ window.location.href (ซึ่งเป็นหนึ่งในสิ่งที่ฉันลอง) อย่างไรก็ตามหลังจากเปลี่ยนรหัสเป็น
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
ตอนนี้ใช้งานได้แล้ว