Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

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 控制器内的角度访问cookie_Javascript_Angularjs_Cookies - Fatal编程技术网

Javascript 控制器内的角度访问cookie

Javascript 控制器内的角度访问cookie,javascript,angularjs,cookies,Javascript,Angularjs,Cookies,我不知道为什么$cookies服务在LoginController的直接正文中可用,但它在LoginController的登录函数中不可用 $scope和$http在这两个地方都可用,但是$cookies服务有问题 这些文件包含在HTML头中: angular.module('site.controllers', ['ngCookies']) .controller("LoginController", ["$scope", "$http", "$cookies", function($

我不知道为什么$cookies服务在LoginController的直接正文中可用,但它在LoginController的登录函数中不可用

$scope和$http在这两个地方都可用,但是$cookies服务有问题

这些文件包含在HTML头中:

angular.module('site.controllers', ['ngCookies'])
    .controller("LoginController", ["$scope", "$http", "$cookies", function($scope, $http, $cookies){
        debugger; // can access $cookies here
        $scope.login = function(){
            debugger; // ReferenceError: $cookies is not defined
            var credentials = {
                'username': $scope.username,
                'password': $scope.password
            };
            $http.post('/login', credentials)
                .success( function(data, status, headers, config){
                    $scope.template = $scope.templates[2];
                })
                .error( function(data, status, headers, config){
                    debugger;
                    $scope.template = $scope.templates[2];
                //TODO: info for user that login failed
                });
        };
    }])
;

我认为只要您使用登录方法,就可以访问它。如果您试图仅使用
调试器查看数据,则无法在调试控制台中获取数据。我认为这是因为js引擎没有创建闭包,因为您没有在login方法中引用属性


尝试在登录方法内部执行
console.log($cookies)

我认为只要您使用它,就可以在登录方法中访问它。如果您试图仅使用
调试器查看数据,则无法在调试控制台中获取数据。我认为这是因为js引擎没有创建闭包,因为您没有在login方法中引用属性


尝试在登录方法内部执行
console.log($cookies)

你说得对。当我在登录方法中使用$cookies时,我可以在debugger.OMG中访问它,谢谢!我以为我疯了@钱德尔马尼-你是宝石。我正要扔掉我的笔记本电脑:)你说得对。当我在登录方法中使用$cookies时,我可以在debugger.OMG中访问它,谢谢!我以为我疯了@钱德尔马尼-你是宝石。我正要扔掉我的笔记本电脑:)
<script type="text/javascript" src="static/lib/angular/angular.js"></script>
<script type="text/javascript" src="static/lib/angular/angular-cookies.js"></script>