我有下表:
<ng-container *ngFor='let data1 of sectionList'>
<tr>
<td>
{{data1.name}}
<button (click)="ArrRow($event)" style="float: right" id="{{data1.id}}">+</button>
</td>
</tr>
<tr *ngFor="let data2 of (model.Register10Data | filter:'sectionGroup':data1.id); let dataIndex = index">
<td>
{{data2.SomeNumericValue}}
</td>
</tr>
<tr><td>Here I need to summing of the data2.SomeNumericValue</td></tr>
</ng-container>
在此表中,我使用 @pipe 对数据进行分组。管道看起来像:
@Pipe({
name: 'sectionGroup'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], field: number, value: number): any[] {
if (!items) return [];
return items.filter(it => (+it[field]) === (+value));
}
}
这工作正常。
我需要data2.SomeNumericValue
使用管道在 *ngFor 中得到渲染的总和。但是求和必须在 *ngFor 之外呈现。在上面的例子中,我写了它应该在哪里。真实表包含许多列和行。并且可以动态添加行。通过某些列,我想得到总和。我知道如何在单元格中编写函数和渲染结果。但我认为总和必须在 *ngFor 内部计算,因为它减少了迭代次数。但也许我错了。如何做到这一点,哪种方法最好?