javascript - 如何等待 $firebaseArray 数据

标签 javascript angularjs firebase web-applications firebase-realtime-database

下面是我的 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/

相关文章:

javascript - 是否可以在应用程序启动时获取 Durandal 加载进度?

javascript - 使用 ng-click 过滤博客文章

Firebase 数据库 : find by value without index access

Firebase 撤销下载网址上的 token

javascript - 未注入(inject)通过 RequireJS 从 CDN 加载 Angular

javascript - 创建 NodeJS + Mongo DB MVC,有什么想法如何开始吗?

javascript - 涉及异步调用时,如何设置具体的执行顺序?

javascript - angularJS 使用 Angular 谷歌地图查找位置/地名

javascript - 向 md-tabs 添加 'Add/Remove-Tab' 功能

android - 我们可以在通知中发送 Firebase ServerValue 时间戳吗?