如何将Observable中的字段值与Angular 4 Firestore数组相加

问题描述 投票:0回答:1

我是Cloud FireStore的新手,并且一直在搜索没有结果的很多天,这是一个简单的解决方案,我如何总结来自Observable Angular Firestore的数组的某些字段值。我有一个行列表,我想要求和总和列,这是我的代码的一部分:

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.importe字段的总和。有人知道怎么做这个吗?最好的问候,Caribesoft

angular firebase google-cloud-firestore angularfire5
1个回答
1
投票

您可以在Observable上使用map来返回总和。例如

getSum(): Observable<number> {
    return this.observable
       .map(arr => arr.reduce((a, b) => a + b.value, 0));
}
© www.soinside.com 2019 - 2024. All rights reserved.