Angular 如何使用角度4 Firestore阵列对可观测的字段值求和
我是云FireStore的新手,已经搜索了很多天,但都没有结果,我想找到一个简单的解决方案,关于如何对来自可观测角度FireStore的数组的一些字段值求和。我有一个行列表,我想要求和,还有列合计,这是我代码的一部分:Angular 如何使用角度4 Firestore阵列对可观测的字段值求和,angular,firebase,google-cloud-firestore,angularfire5,Angular,Firebase,Google Cloud Firestore,Angularfire5,我是云FireStore的新手,已经搜索了很多天,但都没有结果,我想找到一个简单的解决方案,关于如何对来自可观测角度FireStore的数组的一些字段值求和。我有一个行列表,我想要求和,还有列合计,这是我代码的一部分: constructor(private afs: AngularFirestore, private router: Router, private route: ActivatedRoute) { this.negocio = this.route.snapshot
constructor(private afs: AngularFirestore, private router: Router, private route: ActivatedRoute) {
this.negocio = this.route.snapshot.queryParams['negocioId']
this.movtosCollectionRef = this.afs.collection('movtos', ref => ref.where('empresa', '==', this.negocio));
this.movtos$ = this.movtosCollectionRef.snapshotChanges().map(actions => {
return actions.map(action => {
const data = action.payload.doc.data() as Movtos;
const id = action.payload.doc.id;
return { id, ...data };
});
});
}
在我的模板中,我进行浏览:
<tbody>
<tr *ngFor="let item of movtos$ | async" [class.completed]="item.completed">
<td>{{ item.indate | date: 'dd/MM/yyyy - HH:mm:ss'}}</td>
<td>{{ item.concepto }} </td>
<td>{{ item.tipomov }} </td>
<td>{{ item.inuser }} </td>
<td>{{ item.importe | currency:'USD':true:'3.2-2' }}</td>
<td>
<a class="btn btn-info" (click)="editaEmpresa(item.id)" tooltip="Edita Movimiento" placement="top"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></a>
</td>
</tr>
</tbody>
我想得到item.import字段的和。
有人知道怎么做吗?
顺致敬意,
Caribesoft您可以在可观察对象上使用map返回总和。乙二醇
getSum(): Observable<number> {
return this.observable
.map(arr => arr.reduce((a, b) => a + b.value, 0));
}
谢谢Rahul的回复,但是我从哪里得到这个呢?我试过这个。movtos$,但不起作用。你得到的答复是承诺吗?然后你可以使用Observed.fromPromiseI正在尝试这个->getSum:observeable{返回这个.movtos$.maparr=>arr.reducea,b=>a+b.importe,0;}但是我得到了TOTAL:[对象对象]你能试着记录这个对象包含的内容吗?嗨,谢谢,我通过以下方式解决了使用订阅的问题:this.totalSubscription=this.movtos$.subscriptelist:any=>{this.total=0;let fixedLength=list.length | | 0;for let I=0;I