Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何使用角度4 Firestore阵列对可观测的字段值求和_Angular_Firebase_Google Cloud Firestore_Angularfire5 - Fatal编程技术网

Angular 如何使用角度4 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

我是云FireStore的新手,已经搜索了很多天,但都没有结果,我想找到一个简单的解决方案,关于如何对来自可观测角度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.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