为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种方法可以合并单据值(购物车的总价格和数量)

有没有一种方法可以合并单据值(购物车的总价格和数量)

胡子哥哥 2021-04-08 13:15:47
如标题所述,在显示价格和数量方面存在问题。这是我到目前为止所做的:购物车项目 export class ShoppingCartItem {  id?: string;  name: string;  imgCover: string;  price: number;  quantity: number;}购物车服务async getCart(): Promise<Observable<ShoppingCartItem[]>> {  let cartId =  await this.getOrCreateCartId();  let cartCollection = this.afs.collection(`shopping-carts/${cartId}/items`, ref => ref.where('id','==', cartId));  return cartCollection.snapshotChanges().pipe(map( actions => {    return actions.map(a => {      const data = a.payload.doc.data() as ShoppingCartItem;      const id = a.payload.doc.id;      return { id, ...data };    });  }));}navbar.component  totalCart$: Observable<ShoppingCartItem[]>;  items: ShoppingCartItem[]  total: number = 0;  constructor(   public dialog: MatDialog,   private shoppingCartService: ShoppingCartService,  ) {}  ngOnInit() {    this.getCart();  }  async getCart() {    this.totalCart$ = await this.shoppingCartService.getCart();    this.totalCart$.subscribe(data => {      data.forEach(element => {       this.total += element.quantity       console.log(this.total);   })  }) }使用这种方法,我可以在第一次加载时显示正确的数据,然后将该数量乘以相同数量+ 1(因为再次调用现有数据)就可以显示正确的数据。如何合并数量和价格字段?
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

为了防止总数在以后的通话中增加一倍,只需添加一个局部变量即可将您的数量和价格相加。完成价格和数量的累加后,您可以为它们分配实际的类别字段,请参见下面的示例:


totalCart$: Observable<ShoppingCartItem[]>;

items: ShoppingCartItem[]

totalQuantity: number = 0;

totalPrice: number = 0;


constructor(

  public dialog: MatDialog,

  private shoppingCartService: ShoppingCartService,

) { }


ngOnInit() {

  this.getCart();

}


async getCart() {

  this.totalCart$ = await this.shoppingCartService.getCart();


  this.totalCart$.subscribe(data => {

    let totalQuantity = 0;

    let totalPrice = 0;

    data.forEach(element => {

      totalQuantity += element.quantity

      totalPrice += element.quantity * element.price

      console.log(totalQuantity, totalPrice);

    })

    this.totalQuantity = totalQuantity;

    this.totalPrice = totalPrice;

  })

}


查看完整回答
反对 回复 2021-04-29
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信