这是我的angularjs代码:
<table ng-controller="SimulateController">
<thead>
<tr>
<th>Product</th>
<th>Quantity</th>
<th>Price</th>
<th>Total Price</th>
</tr>
</thead>
<tr ng-repeat="item in items">
<td>{{item.name}}</td>
<td><input ng-model="item.quantity" /></td>
<td>{{item.price}}</td>
<td>{{item.quantity * item.price}}</td>
</tr>
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
我需要这样的东西,以获得总价格列的总和:
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th>totalsum{{item.quantity * item.price}}</th>
</tr>
</tfoot>
我如何得到这个?,尽管寻找其他主题,我找不到与计算表达式相关的任何内容,谢谢。
答案 0 :(得分:1)
在您的控制器中,定义一个计算总数的函数getTotal(items)
;
$scope.getTotal = function (items) {
// compute and return the total price
}
然后在模板中:
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th>{{getTotal(items)}}</th> <!-- or {{getTotal(items) | currency}} -->
</tr>
</tfoot>
计算总数的函数可以如下实现:
$scope.getTotal = function (items) {
var total = 0;
angular.forEach(items, function (item) {
if (item.quantity) {
total += item.quantity * item.price;
}
};
return total;
}
理想情况下,您可以使用reduce
执行此操作,但这不是主题。