Unten ist der Code verwende ich die ausgewählten Spieler von meiner Feuerbasis databse meinen Umfang zu bringen:
var orderedPlayers = databaseService.players.orderByChild("id");
$firebaseArray(orderedPlayers)
.$loaded(function(loadedPlayers) {
var normalizedPlayers = loadedPlayers.reduce(function(acc, next) { acc[next.id] = next; return acc; }, {});
var selectedPlayers = $scope.pick.map(function(num){
return normalizedPlayers[num];
});
$scope.players = selectedPlayers;
$scope.sum =function(items, prop){
return items.reduce (function(a, b) {
return a + b [prop];
}, 0);
};
$scope.totalPoints = $scope.sum($scope.players, 'goals');
}, function(err) {
console.log(err);
$scope.players = [];
});
Das Problem ist, dass, wenn ich die Anzahl der Ziele aus der Feuerbasis Datenbank ändern Es gibt keine Echtzeitänderung der Gesamtzahl der Punkte. d. h. $scope.players = selectedPlayers;
Updates in Echtzeit, aber $scope.totalPoints only
Updates nach dem Aktualisieren der Seite.
Ist es möglich, das letztere auch in Echtzeit zu aktualisieren?
Zeigen Sie Ihre * html * Template-Code. –
Zeigen Sie mehr Code oder erstellen Sie eine Fiedel, um Ihr Problem zu reproduzieren. – lin
Ist das Code-Snippet, das Sie gepostet haben, Teil einer einzelnen Methode oder ist es nur der gesamte Codeblock für $ onInit()? Wenn dieser Code oben in einer Methode ist und von irgendwo aufgerufen wird, kann er zeigen, warum der Fehler auftritt (zum Beispiel wird $ fireBaseArray nur aufgerufen, wenn die Methode aufgerufen wird). – rrd