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
});
};
}])
;
我不知道为什么$ Login服务在LoginController直接主体中可用,但它在LoginController的登录功能中不可用。
$ scope和$ http在两个地方都可用,但是$ cookies服务有问题。
这些文件包含在HTML头中:
<script type="text/javascript" src="static/lib/angular/angular.js"></script>
<script type="text/javascript" src="static/lib/angular/angular-cookies.js"></script>
答案 0 :(得分:4)
我认为只要您使用它,就可以在登录方法中访问它。如果您仅使用debugger
尝试查看数据,那么您将无法在调试控制台中获取数据。我认为这是因为js引擎没有创建闭包,因为你没有在login方法中引用该属性。
尝试在登录方法中执行console.log($cookies)
。