Я новичок в Angular, и сейчас я просто пытаюсь настроить все свои маршруты и работать так, как мне хотелось бы.
Настройка. Когда пользователь переходит на определенные страницы (в данном примере /settings
), приложение должно проверять, не авторизовался ли уже пользователь. Если есть, продолжайте как обычно. В противном случае пользователь должен перейти на страницу входа (/login
).
Что я хочу: после того, как пользователь успешно войдет в систему, он должен перейти на страницу, на которую изначально пытался попасть (/settings
)
Мой вопрос: есть ли "угловой способ" запомнить, куда пользователь пытался перейти?
Соответствующий код:
app.js
.when('/settings', {
templateUrl: '/views/auth/settings.html',
controller: 'SettingsCtrl',
resolve: {
currentUser: function($q, $location, Auth) {
var deferred = $q.defer();
var noUser = function() {
//remember where the user was trying to go
$location.path("/login")
};
Auth.checkLogin(function() {
if (Auth.currentUser()) {
deferred.resolve(Auth.currentUser());
} else {
deferred.reject(noUser());
}
});
return deferred.promise;
}
}
})
логин.js
$scope.submit = function() {
if(!$scope.logInForm.$invalid) {
Auth.login($scope.login, $scope.password, $scope.remember_me)
//go to the page the user was trying to get to
}
};
Большое спасибо Джону Линдквисту за видео, благодаря которому я так далеко продвинулся.