我在使用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中工作。
答案 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);