2017-10-06 7 views
-1

の「forループ」とテーブルの列のSUMを取得し、私は「forEachのは」Ionic1に罰金働いたがIonic2に失敗し、すべてのヘルプは次のようになり、「テーブル」列(getShotsTotal)の合計を取得しようとしています感謝。私は標準の 'Loop'が必要かもしれないと思うが、初心者としては正しい方法とコードがわからない。angular2

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

あなたが求めているものは本当にわからない:export class CardPage {Par:any; } – Bruce