【发布时间】:2020-05-22 07:17:23
【问题描述】:
我正在尝试理解和使用 Observables,我得到了它的工作,但现在我需要根据它们拥有的 id 过滤内部的数据,例如:具有l1: 1 和 l2 : 2 应该像具有l1: 1,l2: 3,l3: 4
哪种方法最好?我尝试使用 .filter() 和 .distinct() 但无法正常工作,我应该在组件内部过滤还是直接在服务内部过滤?
service.ts
getStructure(): Observable<StructureInterface[]> {
return this.httpClient.get<StructureInterface[]>(`someUrl`)
.pipe(
tap(data =>
console.log('Get structure done ', data)),
catchError(this.handleError)
);
}
interface.ts
export interface StructureInterface {
parts: {
part: string,
l1: number,
l2: number,
l3: number,
diam: Array<{}>;
price1: number,
price2: number
},
labels_levels: [string];
labels_diameters: [string];
}
component.ts
labels: any[];
constructor(private httpClient: HttpClient,
private activatedRoute: ActivatedRoute,
private service: Service
) {
}
//Call to service
ngOnInit() {
this.service.getStructure().subscribe(
res => {
this.labels = res;
//I tried .filter() here
console.log(this.labels)
});
}
感谢您的帮助
【问题讨论】:
标签: angular filter observable