2016-01-22 72 views
0

在我的角度应用角度:用ngCookies

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

只是要确保您指定的服务,在喷油器阵列中的一个正确的顺序和控制器功能PARAMS:

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); 
    }; 
}]); 
+0

酷,迪马,它完全适用。谢谢你! –