如果数量增加或减少,则应反映在总量上。 Cart.ts:
export class CartComponent implements OnInit {
cart: Cart[] = [];
private calculateCart(cart:Cart){
cart.itemsTotal = cart.items
.map((item) => item.Quantity * this.products.find((p) => p.ProductId === item.ProductId).Price)
.reduce((previous, current) => previous + current, 0);
cart.deliveryTotal = cart.deliveryOptionId ?
this.deliveryOptions.find((x) => x.id === cart.deliveryOptionId).price : 0;
cart.grossTotal = cart.itemsTotal + cart.deliveryTotal;
return cart.grossTotal;
}
cart.html:
<div class="col-xs-10 col-sm-10 col-md-6 col-lg-4">
<i class="fa fa-inr"></i> {{(cart | async).grossTotal}}
</div>
cart.model:
import { CartItem } from "./cart-item.model";
export class Cart {
items : CartItem[];
itemsTotal : number;
grossTotal: number = 0;
deliveryTotal: number = 0;
deliveryOptionId: string;
ProductId: number;
Option: string;
Quantity: number;
}
如果将产品添加到购物车中,则总计未添加到购物车中。我已经尝试了很多相关的操作,但未能获得输出。如何实现此目的
答案 0 :(得分:0)
cart: Cart;
由
cart: Cart[] = [];
和
{{cart.grossTotal}}
毕竟,您只有1个购物车,但其中有很多不是吗?
答案 1 :(得分:0)
我猜您的购物车是:Cart []实际上是Cart类型,因为您有一个购物车,而不是@Antoniossss指出的多个。
您也不会修改模板中引用的购物车实例。在计算(本地)购物车的GrossTotal之后,您需要使用this.cart = cart;
更新模板中可用的购物车实例。
我建立了一个小小的堆叠闪电来展示其工作方式:https://angular-tfihau.stackblitz.io