我有下表:
<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内计算,因为它减少了迭代次数。但也许我错了。怎么做以及哪种方法最好?