2016-07-29 4 views
0

Das ist mein Werk:Verwendung von Drittanbieter-Bibliothek in einem Winkel Fabrik

.factory('DataService',['$http',function($http, Backand){ 
    var data = []; 
    return { 
     GetData: function(){ 
      return $http.get(Backand.getApiUrl() + '/1/objects/details').then(function(response){ 
       data = response; 
       return response; 
      }); 
     }, 
     GetElem: function(personId){ 
      for(i=0;i<data.length;i++){ 
       if(data[i].id == personId){ 
        return data[i]; 
       } 
      } 
     } 
    } 

}]); 

Jetzt ist das Problem. Die Third-Party-Bibliothek Backand ist korrekt injiziert, aber ich bekomme den Fehler: Cannot read property 'getApiUrl' of undefined

So Backand ist undefiniert. Wenn ich Backand in einem Controller verwende, funktioniert alles gut.

Was soll ich tun, um das zu beheben?

Antwort

2

Sie vermissen Backand während

ändern Injektion dieses:

.factory('DataService',['$http',function($http, Backand){ 

zu diesem:

.factory('DataService',['$http', 'Backand',function($http, Backand){ 

Hoffnung dies für Sie arbeiten.

-1
.factory('DataService',['$http, 'Backand',function($http, Backand){ 
    // correctly injected Backand 
}]); 
+0

Nein, das stimmt jetzt auch nicht, weil Zitate falsch sind. – dfsq

+0

Bitte fügen Sie eine Erklärung hinzu, warum dieser Code dem OP hilft. Dies wird helfen, eine Antwort zu liefern, von der zukünftige Zuschauer lernen können. Weitere Informationen finden Sie unter [Antwort]. –