Recursive $ http.get in for loop
Ich benutze Angular 1.5. Ich habe eine Funktion, die Kategorien abfragt und dann für jede Kategorie Produkte abfragt. Ich möchte eine Nachricht anzeigen, nachdem alle Produkte abgerufen wurden und wie viele abgerufen wurden. Es gibt 0 aus. Was ist die Lösung?
function getProducts() {
vm.categories = [];
var prodcount = 0;
$http.get("localhost/menu/1/categories")
.then(function(response) {
var categories = response.data;
angular.forEach(categories, function(cat) {
$http.get("localhost/category/" + cat.id + "/products")
.then(function(response) {
cat.products = response.data;
vm.categories.push(cat);
prodcount += cat.products.length;
});
});
$mdToast.show($mdToast.simple().textContent("retrieved " + vm.categories.length + " categories and, " + prodcount + " products!."));
});
}