我有一个组件像
export class InspectionComponent {
@Input()
inspections: Inspections[];
}
我想按日期属性对检查进行分组。我是否使用或管道或有一种方法来转换组件中的列表?我在想一个可观察对象,但我不知道是否有可能观察到一个组件输入?
基本上我想写的是这样的(我知道这没有意义,但它表明了这一点)
export class InspectionComponent implement OnInit {
@Input()
inspections: Inspection[];
groups: { date: Date, inspections: Inspection[] };
ngOnInit() {
inspections.groupBy(...).subscribe(groups => this.groups = groups);
}
}
我在Angular的管道文档中读到,强烈建议在组件逻辑中做过滤和排序。
您可以将inspections
设置为setter,这样,每次更新inspections
时,都会执行分组:
groupedInspections: Inspections[]
@Input()
set inspections(inspections: Inspection[]) {
this.groupedInspections = ...
}
在视图中,您将其绑定到groupedInspections
。
你应该注意,当向传递的数组中添加/删除项时,这个函数不会被调用。