对于标题的非常通用的措辞,我想不出更好的方式来描述我正在尝试做的事情。
下面的代码是我home.component.ts的亮点completedOrderTotal: Order[] = [];
completedOrderDay: Order[] = [];
getCompletedOrders() {
this.loadingCompletedOrders = true;
var totalCompletedOrders = 0;
var now = new Date();
this.orderService.get(6).subscribe((order) => {
this.completedOrderTotal = order.filter((c) => c.COMPLETED == true);
this.completedOrderDay = order.filter((d) => d.COMPLETED == true && d.DATE_COMPLETED.getDay() < now.getDay()-1);
this.totalCompletedDay = this.completedOrderDay.length;
this.totalCompletedOrderTotal = this.completedOrderTotal .length;
this.loadingCompletedOrders = false;
});
}
export class Order {
BUY_ORDER_ID: number;
SELL_ORDER_ID: number;
COMPLETED: boolean;
BUY_TOTAL: number;
SELL_TOTAL: number;
BUY_TRIGGER: string;
DATE_CREATED: Date;
DATE_COMPLETED: Date;
}
order.service.ts(API服务)
@Injectable()
export class OrderService {
constructor(private http: HttpClient) { }
get(id: number) {
return this.http.get<Order[]>('api/order/' + id);
};
}
我想拥有一个包含2组数据的2个对象。 1.已完成的所有订单 2.所有在过去24小时内完成的订单
我正在努力解决这条问题:
this.completedOrderDay = order.filter((d) => d.COMPLETED == true && d.DATE_COMPLETED.getDay() < now.getDay()-1);
我收到错误d.DATE_COMPLETED.getDay()不是函数。
有人能指出我在正确的方向吗?
干杯,
答案 0 :(得分:1)
您正在使用HttpClient从后端获取JSON。 JSON没有Date类型。它有字符串,布尔值,数字,数组和对象。因此订单不可能有Date类型的字段。
此外,您应该真正改进您的命名约定。方法get()
以ID为参数,从URL api/order/{id}
获取,名称order
都表明返回的内容是单个订单。但它似乎是一系列订单。
最后,
order.filter((c) => c.COMPLETED == true);
应该只是
order.filter(c => c.COMPLETED);