2016-08-10 4 views
0

Ich steckte darauf für eine ganze Weile. Mein Service hat nicht funktioniert, da ich keine Daten von meinem erwartet bekommen habe. Aber es funktioniert gut, wenn ich die $http Anfrage in meinen Controller setzen.Angular.JS Service funktioniert nicht

(function(){ 

    function controlProvider($http) { 
     this.getStatus = function (callback){ 
      $http.get("http://localhost:8080/getStatus") 
       .success(function (data) { 
        callback(data); 
       }); 
     }; 

    } 
    controlApp.service('controlProvider', controlProvider); 


    function controlController ($scope,controlProvider){ 
     controlProvider.getStatus = (function (product) { 

       $scope.product = product; 
     }); 
    } 
    controlApp.controller("controlController", controlController); 

    })(); 

Jede Hilfe wird sehr geschätzt werden. Vielen Dank.

+0

Die Art, wie Sie Callback machen, bricht kantig. Sie sollten in Ihrem Controller Ihren Dienst anrufen, nicht geben Sie dem Dienst die Funktion – ssbb

+0

Hallo ssbb, thx für Ihren Kommentar, der Service-Teil funktioniert gut. Ich habe meinen Code auf die Antwort unten geändert und alles funktioniert jetzt gut. –

Antwort

1
//maybe like this ? 
controlProvider.getStatus(function(product) { 
    $scope.product = product; 
}) 
+0

Großartig Thx !!! Es funktioniert, können Sie auch versuchen zu erklären, warum mein vorheriger Code nicht funktioniert? –

+0

@LeongSzeKim Ihnen wurde eine neue Funktion zugewiesen, die controlProvider.getStatus no call zugewiesen wurde. wie 'contrilProvider.getStatus = Funktion (Produkt) {...};' – godtail

+0

Ich verstehe, was Sie meinen, vielen Dank. –

Verwandte Themen