$window 또는 $location을 사용한 각도 리다이렉트JS
작업 중인 앱에는 다양한 상태(ui-router 사용)가 포함되어 있으며, 일부 상태에서는 로그인이 필요하고 다른 상태에서는 공개적으로 사용할 수 있습니다.
사용자가 로그인하고 있는지, 현재 문제가 발생하고 있는 것은 실제로 필요에 따라 로그인 페이지로 리다이렉트 하는 방법을 만들었습니다.로그인 페이지는 현재 Angular 내에 배치되어 있지 않습니다.JS 앱
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, 그리고 내가 어떤 시도를 해도 방향 수정은 일어나지 않습니다.
저는 이걸 하는 방법은$location.url('/RouteTo/Login');
로그인 뷰에 대한 나의 경로는 다음과 같습니다./Login
라고 말할 수 있을 것 같다.$location.url('/Login')
이 루트로 이동합니다.
Angular 앱(루트가 정의되어 있지 않은 경우) 이외의 장소에서는 플레인오래된 JavaScript가 다음 서비스를 제공합니다.
window.location = "http://www.my-domain.example/login"
페이지 전체를 새로고침하려면$window.location.href
권장되는 방법입니다.
브라우저 URL이 변경되어도 페이지 전체가 새로고침되지는 않습니다.URL 변경 후 페이지를 새로고침하려면 하위 API인 $window.location.href를 사용합니다.
https://docs.angularjs.org/guide/$location
도움이 될 수 있습니다! 데모
AngularJs 코드 샘플
var app = angular.module('urlApp', []);
app.controller('urlCtrl', function ($scope, $log, $window) {
$scope.ClickMeToRedirect = function () {
var url = "http://" + $window.location.host + "/Account/Login";
$log.log(url);
$window.location.href = url;
};
});
HTML 코드 샘플
<div ng-app="urlApp">
<div ng-controller="urlCtrl">
Redirect to <a href="#" ng-click="ClickMeToRedirect()">Click Me!</a>
</div>
</div>
어떤 버전인지 모르겠지만, 저는 1.3.14를 사용하고 있기 때문에, 다음의 것을 사용할 수 있습니다.
window.location.href = '/employee/1';
주입 불필요$location
또는$window
현재 호스트 주소를 얻을 필요가 없습니다.
다음 사항을 입력해야 합니다.
<http ng-app="urlApp" ng-controller="urlCtrl">
이렇게 하면 각도 함수가 "창" 개체에 액세스할 수 있습니다.
언급URL : https://stackoverflow.com/questions/24794115/using-window-or-location-to-redirect-in-angularjs
'programing' 카테고리의 다른 글
Jackson JSON Marshall은 getter를 무시합니다. (0) | 2023.02.23 |
---|---|
Angular Http - 약속 또는 구독 (0) | 2023.02.23 |
$.ajax 유틸리티의 JQuery 오류 옵션 (0) | 2023.02.23 |
React 클래스 구성 요소에서 작업 전후의 로드 상태 설정 (0) | 2023.02.23 |
wordpress에 update_field를 사용하여 ACF에 이미지를 업로드하는 방법 (0) | 2023.02.23 |