2015-10-23 27 views
0

我對Angular有問題,並向控制器注入$ cookie。

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

的$餅乾對象未來通過爲未定義。 angular-cookies.js包含在頁面中,並且在包含的AuthenticationService中工作。

+0

你在控制器中傳遞parms的位置? –

+0

首先,你應該避免混合''''和'''引號符號,選擇一個並堅持到你的項目結束。(JShint建議使用''')關於ngCookie問題,你是否試圖聲明你的控制器是否先用老式的方式?我可以請你重新制作一個笨重的bug嗎? – Freezystem

回答

1

,我發現我的問題:

有人把剪切和粘貼原來的控制器代碼到一個新的控制器,但忽略重命名就行控制器:

ListController.$inject =[...]; 

所以,當我來了並添加了$ cookies參數,我的版本被覆蓋。

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

是否包含文件角餅乾[.min] .js文件?

此外,作爲一種良好的做法,不要對應用程序和控制器使用相同的模塊。有一個

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

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

定義,以便您可以有他們乾淨的分離。

+0

是的,它包含了,正如我所說的在另一項服務中工作。 –

0

$ scope,DateService,$ state是否在您的控制器中可用?我通常把這行代碼控制器的聲明

角 .module( 「應用程序」) .controller( 「ListController」,ListController)之後;