AngularFire2和Ionic2,计算列表总和

时间:2017-04-27 21:52:53

标签: list loops ionic2 angularfire2

请帮我弄清楚如何使用离子中的AngularFire2来计算来自firebase的对象值的总和。

我正在尝试这样做:

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

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

在.ts文件中我想做类似的事情,获取对象列表,迭代它并对孩子的值求和并将该值返回给html。

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

firebase数据示例:

"-KhdUCJAyr7Y4Zz3QOnl" : { "-KigSgGlWyFQao80DuA0" : { "value" : "30" }, "-KigTDI3Nue88If0fdYl" : { "value" : "70" } }

请帮帮我吗?

先谢谢。

1 个答案:

答案 0 :(得分:2)

您可以在subscribe的{​​{1}}中进行计算。

this.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();
});

在模板中显示计算结果:

sumValue = 0;
averageValue = 0;
// sum values
calculateSum(value) {
  this.sumValue = this.sumValue + parseInt(value);
}
calculateAverage(count) {
  this.averageValue = this.sumValue / count;
}