如何解决带有管道变换 Angular 的对象数组的总和
我有总时间的对象列表(对象中还有其他属性
delayCount = { "delays": [ { "centre": "AAAA","cause": "G - Capacity","totalTime": 0 },{ "centre": "BBBB","cause": "S - Staffing","totalTime": 303 },{ "centre": "CCCC","cause": "C - Capacity","totalTi in arrayme": 34 } ] }
我正在寻找可以求和“totaTime”的智能管道转换,我使用了以下代码:
import { NgModule,Pipe,PipeTransform } from '@angular/core';
@Pipe({
name: 'sum'
})
export class SumPipe implements PipeTransform {
transform(items: number[],attr: string): number {
// @ts-ignore
return items.reduce((a,b) => a + b[attr],0);
}
在组件 HTML 中我使用了这个:
{{ delayCount$ | async | sum:'totalTime'}}
我遇到了这个错误:
Argument type ListCount is not assignable to parameter type number[]
PS:ListCount 是模型:
export interface ListCount {
centre?: string;
cause?: string;
totalTime?: number;
}
请帮忙
解决方法
根据你提供的数据,有两个问题
- 您应该传递对象的“延迟”字段
module2
- 调整管道以获得正确的类型
{{ (delayCount$ | async).delays | sum:'totalTime' }}
并且不要使用 ts-ignore
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。