Angular 1.4.2注入$ cookies无效

时间:2015-10-23 09:56:44

标签: javascript angularjs cookies dependency-injection

我在使用Angular时遇到问题,并将$ cookies注入控制器。

$ cookies在服务中运行良好,但是使用此控制器我遇到了问题。

var app = angular.module('app', [
    "ui.router",
    "ngCookies",
    'ui.bootstrap']);

angular
    .module("app")
    .controller("ListController", ListController);

ListController.$inject = ['$scope', 'DataService', '$state', "AuthenticationService", "$cookies"];

function ListController($scope, DataService, $state, AuthenticationService, $cookies) {
    ....
}

$ cookies对象以 undefined 的形式出现。 angular-cookies.js包含在页面中,并且在包含的AuthenticationService中工作。

4 个答案:

答案 0 :(得分:1)

我发现了我的问题:

有人将原始控制器代码剪切并粘贴到新控制器中,但忽略了重命名控制器:

ListController.$inject =[...];

所以,当我出现并添加$ cookies参数时,我的版本被覆盖了。

答案 1 :(得分:0)

试试这种方式

var app = angular.module('app', [
    "ui.router",
    "ngCookies",
    'ui.bootstrap']);

angular
    .module("app")
    .controller("ListController",['$scope', 'DataService', '$state', "AuthenticationService", "$cookies", function ($scope, DataService, $state, AuthenticationService, $cookies) {
    ....
}]);

答案 2 :(得分:0)

您是否包含了文件angular-cookies [.min] .js?

此外,作为一种良好做法,不要为应用和控制器使用相同的模块。有一个

angular.module('app', [ 'app.controllers']);

angular.module('app.controllers', [
  \\ define each controller here
]);

定义,以便您可以清楚地分离它们。

答案 3 :(得分:0)

您的控制器中是否有$ scope,DateService,$ state?我通常在声明控制器

之后放入这行代码
  

角       .module( “应用程序”)       .controller(“ListController”,ListController);