Angular 1.4.2注入的$cookies不起作用

Angular 1.4.2 injection of $cookies not working

本文关键字:cookies 不起作用 注入 Angular      更新时间:2023-09-26

我在使用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对象作为未定义传入。angular-cookies.js包含在页面中,并在包含的AuthenticationService中工作。

我找到我的问题了:

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

ListController.$inject =[...];

所以,当我加入$cookies参数时,我的版本被覆盖了。

试试这个

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) {
    ....
}]);

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

另外,作为一个良好的实践,不要为应用程序和控制器使用相同的模块。有

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

$scope, DateService, $state在控制器中可用吗?我通常把这行代码放在controller

声明之后

角.module("应用程序")范式("ListController",ListController);