Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在购物车中添加产品,购物车页面中使用angular 6多次显示总金额_Angular - Fatal编程技术网

在购物车中添加产品,购物车页面中使用angular 6多次显示总金额

在购物车中添加产品,购物车页面中使用angular 6多次显示总金额,angular,Angular,我正在开发一个电子商务网站。在这种情况下,如果我从主页添加产品,产品将列在购物车页面中,但金额不会显示或显示多次,具体取决于产品 这是我的密码: 购物车 合计{ 设total=0; 对于变量i=0;i

我正在开发一个电子商务网站。在这种情况下,如果我从主页添加产品,产品将列在购物车页面中,但金额不会显示或显示多次,具体取决于产品

这是我的密码:

购物车

合计{ 设total=0; 对于变量i=0;i 价格{{cartItem.length}}项 {{Total}} 我得到如下输出:


我只想显示所有产品的总金额一次。如何实现这一点?

由于ngFor中包含总计,因此将显示列表中每个项目的总计,因此您将看到显示许多总计

我建议您在component.ts中定义一个typescript方法,并在希望显示总数的HTML中调用它

getTotal(){
    let total = 0;
    for (var i = 0; i < this.cartItems.length; i++) {
        if (this.cartItems[i].amount) {
            total += this.cartItems[i].amount * this.cartItems[i].quantity;
            this.totalamount = total;
        }
    }
    return total;
}

现在,它看起来像是用一个ngfor循环来显示总数,所以它会重复。将其移出循环从ngfor循环移出后,现在也会显示多次,但不会显示该值。如果它显示多次,则它必须仍在循环内。您是否能够创建一个StackBlitz来重现问题,或者提供您用于cartItemHi there@vino的JSON!请注意,在一个getter中处理代码是个坏主意。请考虑使用一种方法。你能解释你在代码中使用的量是多少吗?总金额是价格和数量的乘积,在这里你做了计算替换量,在总数{{GETSt}}}中总共显示了0,它显示了0。