计算购物车中的总数在角度6中不起作用

时间:2018-08-24 06:48:15

标签: angular

如果数量增加或减少,则应反映在总量上。 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>&nbsp; {{(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;
}

如果将产品添加到购物车中,则总计未添加到购物车中。我已经尝试了很多相关的操作,但未能获得输出。如何实现此目的

2 个答案:

答案 0 :(得分:0)

   cart: Cart; 

   cart: Cart[] = [];

{{cart.grossTotal}}

毕竟,您只有1个购物车,但其中有很多不是吗?

答案 1 :(得分:0)

我猜您的购物车是:Cart []实际上是Cart类型,因为您有一个购物车,而不是@Antoniossss指出的多个。

您也不会修改模板中引用的购物车实例。在计算(本地)购物车的GrossTotal之后,您需要使用this.cart = cart;更新模板中可用的购物车实例。

我建立了一个小小的堆叠闪电来展示其工作方式:https://angular-tfihau.stackblitz.io