В настоящее время я имею дело с angularjs, и я новичок. Я работаю для аутентификации для каждого запроса http и URL-адресов. Поэтому я реализовал мир кодов для изменения аутентификации URL-адресов в качестве сильфонов
/** Main Login submit **/
$scope.submit = function() {
console.log("enter login submit");
$scope.submitted = true;
if (!$scope.loginForm.$invalid) {
$scope.login($scope.credentials);
} else {
$scope.error = true;
$scope.error_des = '';
return;
}
};
//enter code here
/** checking after loggedin in each url **/
if ($window.sessionStorage["userInfo"]) {
var credentials = JSON.parse($window.sessionStorage["userInfo"]);
$scope.login(credentials);
};
/** Common login **/
$scope.login = function(credentials) {
$scope.error = false;
Auth.login(credentials, function(user) {
//success function
$mdDialog.hide();
$state.go("admin-panel.default.home");
}, function(err) {
console.log("error");
$scope.error_des = err.msg;
$scope.error = true;
});
};
Все работает так, как я ожидал, но, переписывая одну и ту же страницу, он всегда перенаправляется на домашнюю страницу (http://localhost: 3000/#/home). I знаю, что это происходит из-за
$state.go("admin-panel.default.home");
мой вопрос заключается в том, как и где дать условие для загрузки той же страницы при перезагрузке??
возможно, у вас нет состояния входа в файл app.js. поэтому, когда вы находитесь на странице входа и обновляете, вы перенаправляете на домашнюю страницу. если это не ваша проблема, не читайте остальную часть моего ответа.
Итак, ниже я показываю фрагмент моего приложения.js, у меня есть все мои состояния (мои перенаправления меню), и для последнего я использую функцию $ urlRouterProvider.otherwise для перенаправления пользователя всегда на экране входа в систему, если они не регистрируются в.
Если мой пользователь, например, находится в состоянии входа в систему, независимо от того, сколько раз он перезагружает страницу, он всегда останется на странице входа.
Я использую эти модули $ stateProvider, $ urlRouterProvider, $ locationProvider, а не по умолчанию $ route of angleularjs.
После моих разных состояний я добавляю $urlRouterProvider.otherwise('/login');
как последний вариант, чтобы быть уверенным, что он не найдет ни одного, другого скрытого или забытого URL-адреса.
angular.module('MainApp')
.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state('floorplan', {
url: '/floorplan/:activeEventId',
template: '......',
onEnter: function () {
//write code when you enter that state
},
onExit: function () {
//write code when you change state
}
})
.state('seating', {
url: '/seating',
template: '<div>Seating is under construction</div>'
})
.state('event_details', {
url: '/event/details',
template: '<div>Event details is under construction</div>'
})
.state('reports', {
url: '/reports',
template: '<div>Reports is under construction</div>'
})
.state('login', {
url: '/login',
controller: 'LoginCtrl',
templateUrl: '/assets/modules/login/login.html',
onEnter: function () {
//write code when you enter that state
},
onExit: function () {
//write code when you exit that state
}
});
$urlRouterProvider.otherwise('login'); //when no route found redirect to login
});
Я надеюсь, что это поможет, удачи.