我试图得到'table'列的总和(getShotsTotal),'forEach'在Ionic1中工作正常但在Ionic2中失败,任何帮助都会受到赞赏。我认为可能需要标准的“循环”,但作为一个新手,我不确定正确的方法和代码。
HTML:
<tr class="row header" *ngFor = "let par of Course; let i=index" >
<td class="col">{{i +1}}</td>
<td class="col1">{{par.Index}}</td>
<td class="col">{{par.Par}}</td>
<td class="col2">{{getPoints(par)}}</td>
<td class="col">{{getShots()}}</td>
<td class="col3" ><select [(ngModel)]="par.sel"
(change)="onChangeScore(par.sel)"><option *ngFor= "let s of items" >{{s}}
</option></select></td>
</tr>
<tr class="row" style="height:32px">
<td class="col">Total</td>
<td class="col"></td>
<td class="col"></td>
<td class="col"></td>
<td class="col">{{getTotalShots()}}</td>
<td class="col"></td>
</tr>
TS:
getShots(par) {
let val = this.selectedHcp - par.Index;
if (val > 17.4) {
return 2;
} else if (val >= -0.5) {
return 1;
} else if (val < -0.5) {
return 0;
}
};
getTotalShots = function () {
if (!this.Par) { return 0;
}
var total = 0;
angular.forEach(this.Par, function (item, index) {
total = total + (this.getShots(item) || 0);
});
return total;
};
答案 0 :(得分:0)
如果要循环存储在this.Par
中的数组,可以直接使用forEach
:
var total = 0;
this.Par.forEach((item, index) => {
total += this.getShots(item) || 0
});