如何使用firebase和angularfire对数组中对象的值进行合计
How can I total values from an object in an array using firebase and angularfire?
更新以获得更好的问题:
我能够让工厂正常运转,并使它的总数脱离了循环。现在,我很难将该数字显示在视图中,并且每次在列表中添加/删除/更新新项目时都会显示该数字。
"ListWithTotal"工厂的工作原理与文档中的完全相同。我没有正确设置ref变量。
这是最新的相关代码:
//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;
});
},
当点值发生变化时,我无法将其返回到视图或进行更新。有人能提供一些方向吗?
AngularFire指南在关于扩展工厂的一节中介绍了这个确切的例子。
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
}
}]);
相关文章:
- 什么'是从对象列表中一次编辑一个对象的正确Angular/Firebase方法
- 如何在 Firebase 的 Angular-Fire 中使用 $save() 来更新对象属性值
- 使用firebase在用户注册对象上设置密钥
- 将数据作为 JSON 对象存储在 Firebase 中
- 在 Firebase 中通过对象的唯一 id 查找对象
- 将 Firebase 对象与当前范围解除关联
- 如何使 Firebase 对象只写入数据而不读取
- Firebase 对象大小:如何忽略带有 $ 的属性
- 将 Firebase .key() 推送到对象
- 获取 Firebase 推送对象的 ID 未定义
- 将不存在的对象添加到 Firebase 数组中
- 在 Firebase 中使用用户的副本时,$conf 美元会添加到对象中,因此我无法将用户复制到新位置
- 基于数据对象的 Firebase 用户写入/读取规则
- 如何获取firebase数据库的主要对象
- Firebase-如何按键从对象列表中获取对象
- 创建大量Firebase对象
- FireBase-angularfire将对象关键帧设置为变量
- 从firebase链接应用程序中的.val()对象读取值
- ReactFire-获取'对象作为React子对象无效'将Firebase绑定到React状态时
- undefined不是对象firebase.auth.FacebookAuthProvider.credential