2016-08-02 18 views
0

Ich arbeite an einem Projekt, das IIFE verwendet, ein Konzept, das ich noch zu erfassen beginne. Mein Service scheint in Ordnung zu sein, ich bin etwas Jasmin, um festzustellen, dass es definiert wird, aber wenn ich versuche, es in meinen Controller zu injizieren ich diesen Fehler:Angular getting unbekannter Anbieter Fehler beim Injizieren Service in Controller

Unknown provider: StudentsServiceProvider <- StudentsService <- StudentsController 

hier ist der Controller in Frage:

(function() { 
    'use strict'; 

    angular 
     .module('ngInterview.students') 
     .controller('StudentsController', StudentsController); 

    StudentsController.$inject = ['StudentsService']; 
    function StudentsController(StudentsService) { 

     /** 
     * Model 
     */ 

     var vm = this; 

     /** 
     * Initialization 
     */ 

     activate(); 

     /** 
     * Implementations 
     */ 

     function activate() { 
      // Initialization code goes here 
      vm.students = StudentsService.getStudents(); 
     } 
    } 
})(); 

Und hier ist der Service, falls ich irgendwie drin verkorkste:

(function() { 
    'use strict'; 

    angular 
     .module('ngInterview.api.students') 
     .service('StudentsService', StudentsService); 

    StudentsService.$inject = ['$http']; 
    function StudentsService($http) { 

     /** 
     * Exposed functions 
     */ 

     this.getName = getName; // This function serves no purpose. It's just here as an example. 

     this.getStudents = function() { 
      return $http({ 
       url: "CUSTOM_URL_HERE", 
       method: "GET" 
      }).then(function successCallback(res) { 
       return res; 
      }, function errorCallback(res) { 
       return this.getStudents(); 
      }); 
     } 

     /** 
     * Implementations 
     */ 

     function getName() { 
      return 'studentsService'; 
     } 
    } 
})(); 

Alle der oben aufgeführten Dateien sind in der index.html enthalten. Wenn ich die Verweise auf StudentsService herausnehme, erhalte ich keine Fehler und alle Dateien werden korrekt instanziiert.

Antwort

1

Da der Dienst StudentsService in einem anderen module ist, haben Sie die 'ngInterview.api.students'module im Haupt module, wie weiter unten zu injizieren:

angular 
    .module('ngInterview.students', ['ngInterview.api.students']) 
Verwandte Themen