Я новичок в Angular, и сейчас я просто пытаюсь настроить все свои маршруты и работать, как хотелось бы.
Настройка:
Когда пользователь переходит к определенным страницам (/settings
для этого примера), приложение должно проверить, есть ли пользователь, уже выполнивший вход. Если это будет продолжаться, как обычно. В противном случае пользователь должен перейти на страницу входа (/login
).
Что бы я хотел:
После того, как пользователь успешно выполнил вход в систему, он должен перейти на страницу, из которой они пытались добраться (/settings
)
Мой вопрос: Есть ли способ "Angular", чтобы запомнить, куда пользователь пытался перейти?
Соответствующий код:
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;
}
}
})
login.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
}
};
Большое спасибо Джону Линдквисту за видео, которое дошло до меня.