2017-01-07 2 views
0

У меня есть таблица продаж, которую я хочу получить, и добавляю итог, когда я иду. У меня есть что-то вроде этого.Угловое ng-repeat Как добавить суммы

<h1>Sale</h1> 
<table> 
    <tr> 
    <th>Name</th> 
    <th>Price</th> 
    <th>Total</th> 
    </tr> 
    <tr ng-repeat="item in items"> 
    <td>{{item.name}}</td> 
    <td>{{item.price}}</td> 
    <td>{{item.price +=item.price}}</td> 
    </tr> 

Это это то, что я хочу

<h1>Sale</h1> 
<table> 
    <tr> 
    <th>Name</th> 
    <th>Price</th> 
    <th>Total</th> 
    </tr> 
    <tr> 
    <td>Burrito</td> 
    <td>$2.00</td> 
    <td>$2.00</td> 
    </tr> 
    <tr> 
    <td>Taco</td> 
    <td>$1.00</td> 
    <td>$3.00</td> 
    </tr> 
    <tr> 
    <td>Quesadilla</td> 
    <td>$4.00</td> 
    <td>$7.00</td> 
    </tr> 
</table> 

Как добавить предыдущую цену к общей сумме, как мой нг повтора петли через него.

+3

Не делайте этого на виду. Сделайте суммирование в контроллере, а затем просто отобразите это промежуточное значение в представлении. –

+0

Я рекомендую вам сделать этот урок, у него есть пример, подобный этому, я многому научился, и он очень полезен в качестве введения в Angular: https://www.codeschool.com/courses/shaping-up-with-angular -js – MikeVelazco

+0

Я думаю @MikeVelazco дал вам правильный ответ –

ответ

1

Есть метод, который оценивает итог:

$scope.getSubTotal = function(index) { 
    var subtotal = 0; 
    for (var i = 0; i < index+1; i++) { 
     var item = $scope.items[i]; 
     subtotal += item.price; 
    } 
    return subtotal; 
    } 

На ваш таблица, перейдите в индекс:

<tr ng-repeat="item in items"> 
    <td>{{item.name}}</td> 
    <td>{{item.price}}</td> 
    <td>{{getSubTotal($index)}}</td> 
</tr> 

Plnkr

0

Попробуйте

<td>{{item.price +=items[$index-1].price}}</td> 
0

общие потребности только один раз означает, что используют таблицы, как это ...

<td>Total: {{ getTotal() }}</td> 

$scope.getTotal = function(){ 
    var total = 0; 
    for(var i = 0; i < $scope.items.length; i++){ 
     var item = $scope.items[i]; 
     total += item.price; 
    } 
    return total; 
} 
Смежные вопросы