下面是我的 firebase 查询,运行良好:
var orderedPlayers = databaseService.players.orderByChild("id");
我的目的是将每个玩家的总得分加在一起:
$scope.sum = function(items, prop){
return items.reduce( function(a, b){
return a + b[prop];
}, 0);
};
$scope.selectedPlayers = $firebaseArray (orderedPlayers);
$scope.totalGoals = $scope.sum($scope.players, 'goals');
问题是,当我直接在 Firebase 数据库中更改进球数时,每个玩家的进球数会实时更新,如我的范围中所示,但最终的进球总数没有相应的变化。
即$scope.selectedPlayers 实时更新
,但 $scope.totalGoals
仅在刷新页面后更新。
是否也可以实时更新后者?
最佳答案
我不太确定你想看什么,但试试这个:
$scope.$watch('players', (newVal, oldVal)=>{
$scope.totalGoals = $scope.sum(newVal, 'goals');
});
现在这将监视 $scope.players 中的变化,您可能需要一些其他变量。
关于javascript - 如何等待 $firebaseArray 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255509/