Ich habe diesen Service in AngularJS:
this.getProductsSiteService = function(idSite)
{
return $http.get(BASE_URL + 'obtener/productos/sitio/'+idSite);
}
Es funktioniert gut. Ich benutze das Verfahren unter den Dienst für das Konsumieren:
$scope.getProducts = function()
{
auth.getSiteInfo().then(function(resp)
{
auth.getProductsSiteService(resp.data.idSite).then(function(response)
{
var json = angular.fromJson(response.data.Respuesta);
$scope.products = json.Table;
});
});
};
Dieser Code funktioniert gut, ich zeigen die Daten des $scope.products
im HTML temnplate mit der ng-repeat
Richtlinie, aber ich habe dieses Problem. Wenn ich $scope.products
in einer anderen Methode des gleichen Controllers verwenden möchte, ist es immer leer. Ich rufe die $scope.getProducts()
Methode und danach verwende ich console.log($scope.products)
und es ist immer []
. Ich habe einen Test gemacht Ich denke, es ist, weil die $scope.products
innerhalb des Service ist, der .then
verwendet, um das Versprechen zu lösen.
Weiß jemand, wie man dieses Problem löst? Ich muss $scope.products
in anderen Methoden des Controllers verwenden.
Wahrscheinlich Sie versuchen, '$ scope.products' zu Acess bevor das Versprechen gelöst. Sie könnten das Versprechen in '$ scope.getProducts' zurückgeben und' then' verwenden, um sicherzustellen, dass '$ scope.prodcuts' Daten – taguenizy
hat wo rufen Sie console.log ($ scope.products) auf? Gleich nach dem Aufruf von $ scope.getProducts? – user449689
Ja, ich denke, das ist das Problem, das Versprechen hat noch nicht gelöst. Danke für den Kommentar. –