Angular:使用ngCookies的奇怪行为

时间:2016-01-22 10:15:52

标签: javascript angularjs cookies angularjs-scope

在我的Angular应用

var mainApp = angular.module('mainApp', ['ngCookies']);

我已定义authCtrl控制器:

mainApp.controller('authCtrl', ['$scope, $cookies',function ($scope, $http, $cookies) {

    $scope.credentials = {};

    $scope.signCheck = function () {
        a = $cookies.getObject('session_credentials');
        console.log(a);
    };
}]);

如果我从数组中删除$scope声明(注入数组?)

mainApp.controller('authCtrl', ['$cookies',function ($scope, $http, $cookies) {

$scope变得未定义。 如果我删除$cookies - $cookies变为未定义。 如果我同时保留它们 - $injector unknown provider error

我做错了什么?

1 个答案:

答案 0 :(得分:1)

请确保在进样器阵列和控制器功能参数中以正确的顺序指示服务:

Angular docs says

  

这是注释应用程序组件的首选方法。这是   如何编写文档中的示例。

     

例如:

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
  // ...
}]);
  

这里我们传递一个数组,其元素由一个字符串列表组成(   依赖项的名称)后跟函数本身。

     

使用此类注释时,请注意保留注释   数组与函数声明中的参数同步。

也许这个控制器定义适合你:

mainApp.controller('authCtrl', ['$scope', '$http', '$cookies', function ($scope, $http, $cookies) {

    $scope.credentials = {};

    $scope.signCheck = function () {
        a = $cookies.getObject('session_credentials');
        console.log(a);
    };
}]);