Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行会话不起作用_Javascript_Angularjs_Session - Fatal编程技术网

Javascript 执行会话不起作用

Javascript 执行会话不起作用,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

我正在为一个小应用程序使用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 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或等效程序注册的路由。