1👍
✅
Using rxjs functional operators, you can achieve the same thing with:
export class ReportComponent {
clickObservable$: Observable<Event> = fromEvent(document,'click');
generateReport$: Observable<string[]> = this.clickObservable$.pipe(
filter(t => this.service.reportForm.valid),
switchMap(t => this.service.getData()),
map(t => t.reportData),
map(t => t.productNames)
)
}
HTML Template
<ul>
<li *ngFor="let productName of generateReport$ | async">
{{ productName }}
</li>
</ul>
0👍
I realized that i simply needed to pass ‘res’ as a type of any:
generateReport() {
if(this.service.reportForm.valid) {
this.service.getData().subscribe
((res:any) => {
console.log(res)
let productNames = res['reportData'].map((res: any) => res.ProductName);
let avgQuantityOrdereed = res['reportData'].map((res: any) => res.AverageQuantityOrdered);
let orderQuantity = res['reportData'].map((res: any) => res.ProductOrders.orderQuantity)
console.log(productNames)
})
}
}
Source:stackexchange.com