Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
List AngularFire2和Ionic2,计算列表和_List_Loops_Ionic2_Angularfire2 - Fatal编程技术网

List AngularFire2和Ionic2,计算列表和

List AngularFire2和Ionic2,计算列表和,list,loops,ionic2,angularfire2,List,Loops,Ionic2,Angularfire2,请帮助我了解如何在ionic中使用AngularFire2计算来自firebase的对象值之和 我试着这样做: 在HTML文件中,我想调用以下函数: <ion-col col-1> {{(calculateAverage(student.$key) | async)}} </ion-col> {(calculateAverage(student.$key)| async)} 在.ts文件中,我想做一些类似的事情,获取对象列表,对其进行迭代

请帮助我了解如何在ionic中使用AngularFire2计算来自firebase的对象值之和

我试着这样做:

在HTML文件中,我想调用以下函数:

    <ion-col col-1>
      {{(calculateAverage(student.$key) | async)}}
    </ion-col>

{(calculateAverage(student.$key)| async)}
在.ts文件中,我想做一些类似的事情,获取对象列表,对其进行迭代,并对子对象的值求和,然后将该值返回到html

我知道如何使用
this.af.database.list
获取列表并使用*ngFor在HTML中显示值,但不知道如何在.ts文件中迭代并向HTML返回值,因为这是异步的

firebase数据示例:

“-KhdUCJAyr7Y4Zz3QOnl”:{
“-KigSgGlWyFQao80DuA0”:{
“值”:“30”
},
“-KigTDI3Nue88If0fdYl”:{
“值”:“70”
}
}

有人能帮我吗


提前感谢。

您可以在
这个.af.database.list的
订阅中进行计算

// suppose you keep the observable
this.items = this.af.database.list('/sample');

// do calculate in observable.subscribe
this.items.subscribe(data => {
  data.forEach(item => {
    // sum here
    calculateSum(item.value);
  });
  // calculate average here
  calculateAverage();
});

如何在templete中计算和显示的示例:

sumValue = 0;
averageValue = 0;
// sum values
calculateSum(value) {
  this.sumValue = this.sumValue + parseInt(value);
}
calculateAverage(count) {
  this.averageValue = this.sumValue / count;
}
在模板中显示计算结果:

<span>averageValue</span>
平均值

您可以在
这个.af.database.list的
订阅中进行计算

// suppose you keep the observable
this.items = this.af.database.list('/sample');

// do calculate in observable.subscribe
this.items.subscribe(data => {
  data.forEach(item => {
    // sum here
    calculateSum(item.value);
  });
  // calculate average here
  calculateAverage();
});

如何在templete中计算和显示的示例:

sumValue = 0;
averageValue = 0;
// sum values
calculateSum(value) {
  this.sumValue = this.sumValue + parseInt(value);
}
calculateAverage(count) {
  this.averageValue = this.sumValue / count;
}
在模板中显示计算结果:

<span>averageValue</span>
平均值

谢谢您的回复,但我如何在异步函数中返回?@jorgeviera您不能从asyn函数返回,但可以对其回调执行您想要的操作。很抱歉,因为我是爱奥尼亚/安格尔的新手。例如,你能告诉我如何在html中使用求和的结果吗?@JorgeVieira我给出了更新的答案,包括一个例子。噢,谢谢@Pengyy。我将在这里尝试,看看是否有效。谢谢您的回复,但我如何在异步函数中返回?@JorgeVieira您不能从asyn函数返回,但可以对其回调执行您想要的操作。很抱歉,因为我不熟悉离子/角度。例如,你能告诉我如何在html中使用求和的结果吗?@JorgeVieira我给出了更新的答案,包括一个例子。噢,谢谢@Pengyy。我会在这里试试看是否有效。