角度切片对象数组

时间:2018-03-03 10:02:24

标签: javascript angular multidimensional-array angular5

我试图通过从角度为5的另一个对象数组中获取一个对象数组。我通过一个服务从我的API后端获取所有产品。我将结果传递给了array类型的属性产品。我想从我得到的结果中检索一个部分。好吧可能无法用文字描述,所以lemme删除代码。

export class HomeComponent implements OnInit {
discountedproducts: Products[];
latestproducts: Products[];
 cheapestdeals: Products[];
randomproducts: Products[];

constructor(private productservice: ProductService) {

}

ngOnInit() {
  this.productservice.getProductsBydiscount()
    .subscribe(res => this.discountedproducts = res);

    this.productservice.getProductsByNewest()
    .subscribe(res => this.latestproducts = res);

    this.productservice.getProductsByPrice()
    .subscribe(res => this.cheapestdeals = res);

    this.productservice.getProductsByRandom()
    .subscribe(res => this.randomproducts = res);
}

}

如果我这样做

let slicedarray = latestproducts.slice(0, 3); 

在构造函数中,当我尝试使用ngFor循环显示它时,它不会输出任何内容。我怎么能做得更好?

1 个答案:

答案 0 :(得分:1)

您应该在回复.subscribe时执行此操作,否则您需要将latestproducts作为主题然后订阅。

this.productservice.getProductsByNewest()
    .subscribe(res => {
      this.latestproducts = res;
      this.slicedArray = res.slice();
    }
);

然后在slicedArray上执行ngFor。