【发布时间】:2020-03-30 22:16:17
【问题描述】:
在我的项目中,我想在每个产品页面中创建某种“推荐产品”, 但无法让我的函数过滤可观察。
我尝试过以不同的方式使用 .pipe(filter()),但没有用。
基本上该功能应该过滤具有相同type和id的产品,并将它们显示在适当的产品页面中,但在订阅我的所有产品后几乎卡住了(在下面标记)。
非常感谢!
import { Component, OnInit } from '@angular/core';
import { ProductService } from '../services/product.service';
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
import Product from '../interfaces/product';
import { map, filter} from 'rxjs/operators';
import { Observable } from 'rxjs';
@Component({
selector: 'app-product',
templateUrl: './product.component.html',
styleUrls: ['./product.component.css']
})
export class ProductComponent implements OnInit {
recommandedProducts: Product[];
allProducts:Product[];
// allProducts:Observable< Product> = new Observable< Product>();
product: Product;
constructor(private productService: ProductService, private route: Router, private actRoute: ActivatedRoute) { }
ngOnInit() {
this.findRecommendedProducts(this.product)
};
//From ProductService:
// getProducts(){
// return this.http.get(`${this.uri}`);
// }
findRecommendedProducts(currectProduct: Product){
this.productService.getProducts().subscribe((data: Product[]) => {
this.allProducts = data;
console.log(this.allProducts)
this.recommandedProducts = this.allProducts.filter(otherProduct =>
otherProduct.type == currectProduct.type && otherProduct.id == currectProduct.id)
console.log(this.recommandedProducts);
});
};
}
【问题讨论】:
-
向我们展示您从服务中获得的数据
标签: javascript angular observable