2017-10-06 67 views
-1

我想获得'表'列(getShotsTotal),'forEach'的总和在Ionic1中工作正常,但在Ionic2中失败,任何帮助都会赞赏。我认为可能需要标准的“循环”,但作为新手,我不确定正确的方法和代码。在angular2中得到一个表列'for循环'的总和

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

如果你想循环存储在this.Par数组,可以直接使用forEach

var total = 0; 
this.Par.forEach((item, index) => { 
    total += this.getShots(item) || 0 
}); 
+0

谢谢您的快速响应,但是我收到以下错误:无法读取属性'forEach'的未定义 – Bruce

+0

所以属性this.Par是未定义的,或者可能是在另一个上下文中定义的。你能显示组件代码吗? – Eduardo

+0

不确定你要求的是什么:导出类CardPage {Par:any; } – Bruce