我正在尝试获得已存储在数组中的订单的总价。代码看起来像这样。
import { Component } from '@angular/core';
import { Config } from '../config';
var ordersArray = [
];
@Component({
selector: 'orders-page',
templateUrl : 'orders.html'
})
export class Orders{
public orders = ordersArray;
public config = new Config;
public addOrder(item){
ordersArray.push(item);
}
public clearOrders(){
var length = this.orders.length;
for(let i = 0; i < length; i++){
ordersArray.pop();
}
}
public total = this.getPrice();
public getPrice(){
let price = 0;
for(let order of ordersArray){
price = (parseInt(order.item.price) * parseInt(order.quantity) ) + price;
}
return price;
}
public clearOrder(order){
for(let i = 0;i < this.orders.length;i++){
if(order.title == this.orders[i].title){
ordersArray.splice(i,1);
}
}
}
}
模板,我有{{total}}
。
现在,当我从ordersArray
中删除元素时,我希望{{total}}
自动更新。我该怎么做?
答案 0 :(得分:1)
每次getPrice()
时,您都需要包含price
功能。
例如,当您添加新订单时,当您删除一个订单时,当您删除所有订单时...
我认为你可以改进一些代码:
public clearOrders(){
ordersArray = ordersArray[];
}
我无法理解为什么你写public orders = ordersArray;
但之后你正在使用ordersArray
。
请注意,因为您在ordersArray
函数中混合了orders
和ordersArray()
,我认为您应该只使用一个。{/ p>
问候。
答案 1 :(得分:0)
更新getPrice()
后致电ordersArray
,在getPrice()
clearOrder()
试试这个
public clearOrder(order){
for(let i = 0;i < this.orders.length;i++){
if(order.title == this.orders[i].title){
ordersArray.splice(i,1);
}
}
this.total = this.getPrice();
}