2014-03-05 54 views
0

我想在Angularjs控制器中注入一个Angularjs服务,但它给了我错误。在控制器内注入angularjs服务给出错误

service.js

angular.module('gbuyRef',[]).factory('globalDealListService'.function(){ 
    var globalDealList = {}; 

    return { 
     getGlobalDealList: function() { 
     return globalDealList; 
     }, 
     setGlobalDealList: function (value) { 
     globalDealList = value; 
     } 
    }; 

}) 

Controller.js

angular.module('gbuyRef').controller('HomeController',['$scope', 'globalDealListService', function ($scope,$window,$http,$cookies,globalDealListService) { 

    $scope.logOut = function() { 
     $http({ 
      method : 'POST', 
      url : '/logOut', 
      headers : { 'Content-Type': 'application/x-www-form-urlencoded' } 
      // set the headers so angular passing info as form data (not request payload) 
      }).success(function(data, status, headers, config) { 
      console.log($cookies.globalProductList) 

      $window.location.href="/static/html/login.html" 
      }).error(function(data, status, headers, config) { 
      $scope.status = status; 
      $window.alert("error") 
     }); 
    } 
}]); 

能有一个人告诉我什么,我做错了什么?我得到在Firebug下面的错误。

Error: [$injector:unpr] http://errors.angularjs.org/1.2.11/$injector/unpr?p0=globalDealListServiceProvider%20%3C-%20globalDealListService t/<@http://localhost:8100/static/js/external/angular/angular.min.js:6 Yb/l.$injector<@http://localhost:8100/static/js/external/angular/angular.min.js:32 [email protected]://localhost:8100/static/js/external/angular/angular.min.js:30.... 
+2

'[ '$范围', 'globalDealListService',函数($范围,$窗口,$ HTTP,$饼干,globalDealListService)'这些列表不匹配1 – hassassin

+0

感谢@hassassin,那么如何匹配呢? – tushR

+0

使用angular.js代替angular.min.js以获得更多可读性的angular调试。你会看到注入链 – lib3d

回答

0

您正在被注入的每个参数都需要在数组中列出。请参阅 “数组符号” 在这里:http://docs.angularjs.org/guide/di

.controller('HomeController',['$scope', '$window', '$http', '$cookies', 'globalDealListService', 
    function ($scope,$window,$http,$cookies,globalDealListService) { 
     ... 
    } 
+0

仍然出现error.Error:[$ injector:unpr] http://errors.angularjs.org/1.2.11/$injector/unpr?p0=globalDealListServiceProvider%20%3C-%20globalDealListService t/<@http:// localhost:8100/static/js/external/angular/angular.min.js:6 Yb/l。$ injector <@http:// localhost:8100/static/js/external/angular/angular .min.js:32 c @ http:// localhost:8100/static/js/external/angular/angular.min.js:30 – tushR

+0

第一:你的文件真的存在吗? .. chrome - > f12 - > ctrl + o搜索你的文件'service.js' // second:evaluate in console'angular.injector(['ng','gbuyRef'])。has('globalDealListService' )'你会看到你是否真的在gbuyRef模块上注册了这个服务 – lib3d

+0

是的,它工作,页面被缓存并返回错误。 – tushR

相关问题