我已经创建了这样的范围函数。
$scope.getTotal = function(){
var total1 = 0;
var total2 = 0;
var total3 = 0;
for(var i = 0; i < $scope.today.length; i++){
var ordqt = $scope.today[i]["OrdQ"];
var ordvval = $scope.today[i]["OrdSV"];
var resqt = $scope.today[i]["RecQ"];
total1 = +total1 + +ordqt;
total2 = +total2 + +ordvval;
total3 = +total3 + +resqt;
}
total = total1+"@"+total2+"@"+total3;
return total;
}
如何从getTotal函数中拆分值以显示在这里?
<td>{{ getTotal() }}<td>
<td>{{ getTotal() }}<td>
<td>{{ getTotal() }}<td>
答案 0 :(得分:4)
你应该纠正以下行
total1 = total1 + ordqt;
total2 = total2 + ordvval;
total3 = total3 + resqt;
您可以使用ng-repeat
。
<td ng-repeat="total in getTotal().split('@') track by $index">
{{ total }}
</td>
答案 1 :(得分:1)
你不应该首先加入他们:
$scope.getTotal = function() {
// ...
return {
total1: total1,
total2: total2,
total3: total3
};
}
和
<td>{{ getTotal().total1 }}<td>
<td>{{ getTotal().total2 }}<td>
<td>{{ getTotal().total3 }}<td>
甚至更好,制作3个不同的功能,计算3个不同的总数,并从视图中调用每个功能。
或者甚至更好,使用一个函数来计算你想要计算参数总数的字段:
$scope.getTotal = function(field){
var total = 0;
for (var i = 0; i < $scope.today.length; i++){
var value = $scope.today[i][field];
total = +total + +value;
}
return total;
}
并使用
<td>{{ getTotal('OrdQ') }}<td>
<td>{{ getTotal('OrdSV') }}<td>
<td>{{ getTotal('RecQ') }}<td>
请注意,如果您使用有意义的名称,您的代码将更具可读性。 OrdQ
和ordqt
的含义是什么?为什么有时会使用ordqt
,有时会使用OrdQ
。为什么不使用有意义的东西,我想,orderQuantity
?