计算Angular 2和ionic 2 ngfor中元素的总和 [英] Calculating sum of elements in Angular 2 and ionic 2 ngfor

查看:68
本文介绍了计算Angular 2和ionic 2 ngfor中元素的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用ionic 2开发一个移动应用程序,我当然需要每一个比赛表并计算每年的分配总和.我尝试使用此代码,但是它不起作用.你能帮我吗?

I am developing a mobile application with ionic 2 and I need for each of course the race table and calculates the sum of allocation per year. I tried with this code, but it does not work. Can you help me please?

   <ion-row *ngFor="let ch of cheval1 ">
      {{ch[0].annee }}
    <div *ngFor="let m of members  ; let rowIndex = index">
            <ion-col *ngIf="ch[0].annee == (m.Course.date |date : 'yyyy' )">
            {{ m.Course.allocation}} 
            </ion-col>
     </div>

组件

@Component({
  selector: 'page-view-cheval',
  templateUrl: 'view-cheval.html',
})
export class ViewChevalPage {
  cheval ;
  crs = 0 ;
  cheval1 ;
  members ;
  vcheval : string ="Compteurs";
  constructor(public navCtrl: NavController, public navParams: NavParams, public data: ServiceProvider ,public menuCtrl: MenuController ) {
      this.cheval = navParams.data.member;

       this.getIdCheval() ;
  }
  getIdCheval() {
        return   this.data.viewCheval(this.cheval.Cheval.id)
         .subscribe(
                  data=> {
                      this.members = data.course_cheval;
                      this.cheval1 =data.engagements;
                       console.log(this.members[1].Entraineur.nom);
                          console.log(data);
                  },
                  err=> console.log(err)
            );
  }

fiche json:

fiche json:

Course: {
    id: "460",
    date: "2012-06-24",
    nom_du_prix: "GODOLPHIN ARABIAN",
    allocation: "20000",
    hippodrome_id: "2",
    jouree: "36",
    categorie_id: "1",
    distance: "1600",
        },
    Course: {
    id: "306",
    date: "2013-02-17",
    nom_du_prix: "HAMADI BEN AMMAR",
    allocation: "12000",
    hippodrome_id: "2",
    jouree: "10",
    categorie_id: "2",
    distance: "1600",
    },
    Course: {
    id: "328",
    date: "2013-03-31",
    nom_du_prix: "DE L’ INDÉPENDANCE",
    allocation: "25000",
    hippodrome_id: "2",
    jouree: "19",
    categorie_id: "1",
    distance: "2000",
    },
    engagements: [
    [
    {
    annee: "2015"
    }
    ],
    [
    {
    annee: "2014"
    }
    ],
    [
    {
    annee: "2013"
    }
    ],
    [
    {
    annee: "2012"
    }
    ]
    ]

推荐答案

您可以在组件中完成此操作:

You can do it in component:

allocationSum: number;
// other variables

getIdCheval() {
  // ...
  this.members = data.course_cheval;
  this.allocationSum = this.members.reduce((previous, current) => {
    return previous + parseInt(current.Course.allocation);
  }, 0);
}

或创建管道:

@Pipe({ 
  name: 'sumByAllocation' 
})
export class SumByAllocationPipe implements PipeTransform {
  transform(input: any): number {
    if (Array.isArray(input)) {
      return input.reduce((previous, current) => {
        return previous + parseInt(current.Course.allocation);
      }, 0);
    }

    return input;        
  }
}

在模板中:

<div> Total Allocation: {{members | sumByAllocation}} </div>

这篇关于计算Angular 2和ionic 2 ngfor中元素的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆