首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用firebase和angularfire从数组中的对象中汇总值?

如何使用firebase和angularfire从数组中的对象中汇总值?
EN

Stack Overflow用户
提问于 2014-09-11 22:20:22
回答 1查看 1.8K关注 0票数 0

更新一个更好的问题:

我能够使工厂正常运行,并使其总数脱离循环。现在,我很难在视图中显示该数字,而且每当在列表中添加/删除/更新一个新项时,都会显示该数字。

"ListWithTotal“工厂与文档中的工作原理完全一样。我没有正确地设置ref变量。

以下是最新的相关代码:

代码语言:javascript
复制
//controller
$scope.total = TodoService.getTotalPoints();

//service
var todos = $firebase(ref, {arrayFactory: "ListWithTotal"}).$asArray();

  return {
    getTotalPoints:function(){
         todos.$loaded().then(function() {
        total = todos.getTotal();
        console.log(total);
        return total;
      });
    },

当点值发生变化时,我无法将它返回到视图或更新。有人能给我指点方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 02:18:14

AngularFire指南在关于扩建工厂的一节中详细介绍了这个示例。

代码语言:javascript
复制
app.factory("ListWithTotal", ["$FirebaseArray", "$firebase", function($FirebaseArray, $firebase) {
  // create a new factory based on $FirebaseArray
  var TotalFactory = $FirebaseArray.$extendFactory({
    getTotal: function() {
      var total = 0;
      // the array data is located in this.$list
      angular.forEach(this.$list, function(rec) {
        total += rec.amount;
      });
      return total;
    }
  });
  return function(listRef) {
    // override the factory used by $firebase
    var sync = $firebase(ref, {arrayFactory: TotalFactory});
    return sync.$asArray(); // this will be an instance of TotalFactory
  }
}]);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25797871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档