Ich versuche, für jedes Spiel alle Gerichte zu bekommen:
Das HTML sieht wie folgt aus:
<div ng-repeat = "g in games">
{{g.gameName}}
<ul>
<li ng-repeat = "c in getCourts(g.id)" ng-bind = "c.courtName"></li>
</ul>
</div>
Der Controller ist:
$scope.games = {};
$scope.courts = {};
//$scope.slots = {};
$http.get(URI+"booking/allGames").then(function success(res){
$scope.games = res.data;
//console.log($scope.games);
},
function error(res){
console.log(res.data.message);
});
$scope.getCourts = function(gameId){
//courts = {};
$http.get(URI+"booking/courts/"+gameId).then(function success(res){
//console.log(gameId);
console.log(res.data);
return res.data;
//return courts;
},
function error(res){
console.log(res.data.message);
});;
}
Als ich dies ausführen, ich bekomme diese Fehlermeldung:
angular.min.js:6 Uncaught Error: [$rootScope:infdig]
Die AngularJS documentaion sagt
This error occurs when the application's model becomes unstable and each $digest cycle triggers a state change and subsequent $digest cycle.
One common mistake is binding to a function which generates a new array every time it is called.
ich diese Antwort sah: AngularJS use a function in a controller to return data from a service to be used in ng-repeat
Aber ich bin nicht sicher, wie dies zu beheben.
Ich sehe, dass die Grund und Antwort ist bereits in dem obigen Link für Ihr Problem erzählt –
@GopinathShiva Grund Ich habe, aber ich bin immer noch nicht in der Lage, es zu beheben. – Nivedita
1) Ihre 'getCourts()' Methode gibt nichts zurück und 2) Ich glaube nicht, dass 'ng-repeat' in der Lage ist, ein Versprechen abzuarbeiten – Phil