У меня есть такой компонент:Angular2: назначить поле компонента в #ngFor
@Component({
selector: "expenses-component",
templateUrl: "expenses.html"
})
export default class ExpensesComponent {
private expenses: [] = [{name: "Foo", amount: 100}, {name: "Bar", amount: 200}];
private totalAmount: number = 0;
}
, а также такие шаблона:
<h2 class="sub-header">Total: {{total | currency:"USD":true}}</h2>
<div class="table-responsive">
<table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let expense of expenses | orderByDate; let id = index">
<td>{{id + 1}}</td>
<td>{{expense.name}}</td>
<td>{{expense.amount | currency:"USD":true}}</td>
</tr>
</tbody>
</table>
</div>
Мне нужно подсчитать totalAmount
, но я не могу понять, как делайте это, не предоставляя другой для цикла в машинописном коде, так что есть возможность инициализировать total += expense.amount
в рамках вышеописанного цикла #ngFor
?
В трубе можно уплотнить ее до одной строки, используя ES6 array.reduce 'возврата value.reduce ((а, Ь) => а + Ь [ключ], 0)' –
Действительно странно, почему невозможно вычислить 'totalAmount' в' * ngFor' ... – TimurJD