如标题所述,在显示价格和数量方面存在问题。这是我到目前为止所做的:
购物车项目
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(因为再次调用现有数据)就可以显示正确的数据。如何合并数量和价格字段?
智慧大石
相关分类