2016-06-07 2 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 (угловой);'? –

+0

Я думаю, что вам нужно ввести его один раз в объявлении модуля. Попробуйте ввести errortrans .... –

+0

Мне не хватало * замыкания *() моей анонимной функции в * ErrorTranslatorForApiCalls.js * –

ответ

0

Как пользователь предложил, здесь будет помогать распечатка ошибок в консоли. Однако, если то, что вы помещаете в блок кода, является именно вашим кодом, возникает ошибка. Вам не хватает "])" в конце кода вашего контроллера.

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

])//This is missing