2016-04-15 16 views
1

Ich kann meine Variable $ scope.gs in der Ansicht nicht mit {{gs}} aktualisieren, wenn ich http.get im Dienst verwende. Ich habe versucht, einige der Antworten zu lesen, aber sie scheinen diese Methode vorzuschlagen. Bitte helfen ...

Mein Service-Methode als unten:

app.service('myService', function($http, $rootScope) { 
this.getData = function(key){ 
    return $http.get('/myapp/stocklist/AMZN'). 
    then(function(data) {  
    return data; 
    }); 
    } 
    //return this; 
}); 

Mein Controller ist:

app.controller('graph', ['$scope', '$http', 'myService', function($scope,$http, myService){ 
myService.getData($scope.mySelected).then(function(codes){ 
$scope.gs= codes; 
}); 
}]); 

Ich bin nicht sicher, ob ich Fabrik statt Dienst für diese verwendet werden soll. Kannst du bitte einen Ratschlag geben?

+0

Konsole Fehler ??? – TKHN

Antwort

0

möglich $q

app.service('myService', function($http, $rootScope, $q) { 
    return { 
     getData: function (key) { 
      var deffered = $q.defer(); 

      $http.get('/myapp/stocklist/AMZN') 
       .then(function (result) { 
        deffered.resolve(result.data); 
       }, function (error) { 
        deffered.reject(error); 
       }); 

      return deferred.promise 
     } 
    } 
}); 

verwenden oder Ihren Service

app.service('myService', function($http, $rootScope, $q) { 
    return { 
     getData: function (key) { 
      $http.get('/myapp/stocklist/AMZN') 
     } 
    } 
}); 
0

Sie dann zweimal verwenden anpassen. Versuchen

Dienst

app.service('myService', function($http, $rootScope) { 
    this.getData = function(key){ 
     return $http.get('/myapp/stocklist/AMZN');  
    }); 
}); 

-Controller

app.controller('graph', ['$scope', '$http', 'myService', function($scope,$http, myService){ 
    myService.getData($scope.mySelected).then(function(response){ 
      $scope.gs= response.data; 
    }); 
}]); 
+0

Hallo Lukszaq, danke für deine Antwort. Das funktioniert aber ich möchte auch etwas an den Daten im Dienst bearbeiten damit ich es in zwei verschiedenen Controllern verwenden kann gibt es einen Weg. Danke nochmal. – sachin

+0

@sachin U kann Dienste in so vielen Controllern verwenden, wie Sie möchten. Wird nicht benötigt, um es zu ändern. – Lukaszaq

Verwandte Themen