Angularjs

时间:2015-09-16 13:00:30

标签: angularjs sum expression

这是我的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>

我如何得到这个?,尽管寻找其他主题,我找不到与计算表达式相关的任何内容,谢谢。

1 个答案:

答案 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执行此操作,但这不是主题。