2016-06-07 122 views
1

我是AngularJS的新手,我似乎无法弄清楚我的服务注入出了什么问题。AngularJS中的服务注入

服务 - ErrorTranslatorForApiCalls.js

(function() { 
    var errorTranslatorModule = angular.module('exceptionHandler'); 

    errorTranslatorModule.factory('apiStatusTranslator', function() { 
     var translateStatusToFriendlyMessage = function (status) { 

      var friendlyMessage = "Error occured while performing the action"; 

      switch (status) { 
      case 401: 
       friendlyMessage = "You are unauthorized to perform this action"; 
       break; 
      } 

      return friendlyMessage; 
     }; 

     return { 
      translateStatusToFriendlyMessage : translateStatusToFriendlyMessage 
     }; 
    }); 
}); 

这里是我注入了 - GroupSearch.js

(function() { 

    agGrid.initialiseAgGridWithAngular1(angular); 

    var module = angular.module('groupEditor', ["ngRoute", "ngResource", "agGrid", "exceptionHandler"]); 

    module.constant('BASEURL', 'http://localhost/XXX.XXX.XXX/api/group/'); 
    module.controller('SearchController', ['$scope', '$resource', 'BASEURL', "apiStatusTranslator", function ($scope, $resource, BASEURL, apiStatusTranslator) { ............ REST OF CODE GOES HERE; 

我的HTML的JavaScript包括

<script src="Scripts/angular.js"></script> 
<script src="Scripts/angular-resource.min.js"></script> 
<script src="Scripts/angular-route.js"></script> 
<script src="Scripts/ag-grid.min.js"></script> 
<script type="text/javascript" src="Services/ErrorTranslatorForApiCalls.js"></script> 
<script type="text/javascript" src="Controllers/GroupSearch.js"></script> 
+0

为什么你把你的服务包装到一个单独的模块中,我不会那样做一个应用程序。但无论如何,你的代码看起来很好。它在控制台输出中说了什么?什么是'agGrid.initialiseAgGridWithAngular1(angular);'? –

+0

我认为你需要在模块声明中注入一次。尝试注入errortrans .... –

+0

我错过* ErrorTranslatorForApiCalls.js * –

回答

0

根据用户的建议,控制台错误打印在这里会有所帮助。但是,如果您在代码块中放置的是您的代码,则会出现错误。您在控制器代码中最后缺少“])”。

module.controller('SearchController', ['$scope', '$resource', 'BASEURL', "apiStatusTranslator", function ($scope, $resource, BASEURL, apiStatusTranslator) { } 

])//This is missing