我对 Angular 还很陌生,现在我只是想按照我的意愿设置所有路线并使其工作。
Setup:当用户导航到某些页面时(/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
}
};
非常感谢约翰·林德奎斯特视频 http://www.youtube.com/watch?v=P6KITGRQujQ这让我走到了这一步。