Javascript 执行会话不起作用
我正在为一个小应用程序使用angular js。在这里,我需要实现登录和注销功能。为此,我正在执行会议。但它不起作用。 在这里,我对要包含的每个页面都使用一个公共js文件AppCtrl.js 角度JS文件:AppCtrl.JSJavascript 执行会话不起作用,javascript,angularjs,session,Javascript,Angularjs,Session,我正在为一个小应用程序使用angular js。在这里,我需要实现登录和注销功能。为此,我正在执行会议。但它不起作用。 在这里,我对要包含的每个页面都使用一个公共js文件AppCtrl.js 角度JS文件:AppCtrl.JS var app = angular.module('TaskManager', []); app.run(function(Session) {}); //bootstrap session; app.factory('Session', function($http
var app = angular.module('TaskManager', []);
app.run(function(Session) {}); //bootstrap session;
app.factory('Session', function($http) {
var Session = {
data: {},
saveSession: function() { //save session data to db
},
updateSession: function(value) { // load data from db
Session.data = user;
}
};
return Session;
});
对于登录页面:LoginController
app.controller('LoginController', function($scope, $http, $location, Session) {
$scope.login = function(str) {
$http({
method: 'POST',
url: '../TaskManager/public/user/login',
data: $.param({email : email.value, password : password.value}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data, status)
{
var result=data.response;
if (result=="success")
{
Session.updateSession("LoggedIn"); /* Updating the session value */
$scope.session = Session;
document.getElementById('hiddenForm').setAttribute("action","./Dashboard.html");
document.getElementById('hiddenForm').submit();
}
else
alert(data.message);
});
}
对于登录页面,会话正在工作,并将值更新为LoggedIn。但当它重定向到仪表板时,它将会话显示为空白
仪表板页面:DashboardController登录成功后,它将重定向到Dashboard.html
app.controller('DashboardController', function($scope, $http, $location, Session) {
$scope.session = Session;
------------
------------
}
我需要在所有页面中保持会话值。但这对我不起作用
有什么建议/例子吗?你能创建一个plunker吗?会更清楚的…@ronen。。。你能给我提供任何其他使用angular js实现登录和注销功能的例子吗?如果你使用ngRoute,它真的是重定向还是路由更改?saveSession做什么?将会话从工厂更改为服务我认为通过使用隐藏表单提交技术,你绕过了angular的导航能力在应用程序中,强制正常的浏览器导航。您可以尝试调用$location.path'/dashboard.html'而不是提交隐藏表单,但这仅在该仪表板是同一AngularJS应用程序的一部分时有效,例如,如果它是使用$routeProvider或等效程序注册的路由。