我试图在使用java的angularjs中刷新页面之后维护会话。我看过很多例子,但是,我没有找到正确的解决方案,我正在寻找。 请在下面找到登录代码段,当我点击登录按钮时,它在LoginController中调用loginUser()函数 当我做页面刷新时,它会去LoginController,但它不会在loginUser()函数内部进行。根据我的知识,直到我们调用函数,它不会进入它的内部。 当我刷新时,我怎样才能回调loginUser()函数。当页面刷新时,如何在angularjs中回调函数
请帮助我从这些。赞赏..很多谢谢。
LoginController.js
function LoginController($scope, $http, $location, $rootScope,
userService, SessionIdService) {
$scope.user = {};
$scope.user.username = '';
$scope.user.password = '';
$rootScope.loginUser = function(username, password) {
$scope.resetError();
$http.post('/user/main/login/' + username, password).success(
function(login) {
if (login.sessionId === null) {
$scope.setError(login.status);
return;
} else {
$rootScope.userlogin = login.uname;
userService.setUserName(login.uname);
SessionIdService.setSessionId(login.sessionId);
$location.path("/home");
}
}).error(function() {
$scope.setError('Invalid user/password combination');
});
};
$scope.resetError = function() {
$scope.error = false;
$scope.errorMessage = '';
};
$scope.setError = function(message) {
$scope.error = true;
$scope.errorMessage = message;
$rootScope.sees = '';
$rootScope.userlogin = '';
};
};
app.js
app.run(function($rootScope, $location, SessionIdService) {
$rootScope.$on("$routeChangeStart", function(event, next, current) {
console.log("Routechanged... ");
if (SessionIdService.getSessionId == "true") {
if (next.templateUrl == "scripts/views/homescreen.html") {
$location.path("/home");
} else {
$location.path("/screen");
}
}
});
});
的login.html
<input name="textfield" type="text" ng-model="user.username"/>
<input name="textfield" type="password" ng-model="user.password"/>
<button type="button" ng-lick="loginUser(user.username,user.password)">Login</button>
你是说在登录完成之后刷新页面还是之前。如果是以前,用户必须再次输入用户名\密码,刷新后再次点击按钮。 – Chandermani
登录后,在用户主页上刷新我无法维护用户数据。 – pravy89