我对 Angular 还是很陌生,现在我只是想设置我所有的路线并按照我的意愿工作。
设置:
当用户导航到某些页面(/settings
在本例中)时,应用程序应检查是否有用户已登录。如果有,则照常继续。否则,用户应该转到登录页面 ( /login
)。
我想要什么:
用户成功登录后,他们应该转到他们最初尝试访问的页面(/settings
)
我的问题: 是否有一种“角度方式”来记住用户试图去哪里?
相关代码:
应用程序.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
}
};
非常感谢 John Lindquist的视频让我走到了这一步。