【发布时间】:2020-02-23 23:58:04
【问题描述】:
我正在使用 Ionic (4) /Angular 创建一个食品应用程序,它可以处理多个商店并使用 FireBase。但我有一个问题。我像这样创建一个新订单
add(stores: Array<CartStore>, address: string) {
this.afs.collection<Order>('orders').add({
userId: this.userId,
address: address,
items: stores.items,
store: {
id: stores.id,
name: stores.name,
}
});
}
要创建一个订单,我需要在上面的函数中使用这样的 for 循环
for(let i in stores){
items: stores[i].items,
store: {
id: stores[i].id,
name: stores[i].name,
}
}
但这在 firebase 收集功能中是不可能的……啊!
那么,
这就是我的应用程序的工作方式:
点击结帐按钮
this.orderProvider.add(this.cart.stores, this.address);
我的模型:
购物车.ts
import { CartStore } from "./cart-store";
export class Cart {
id?: string;
userId: string;
total: number;
stores: Array<CartStore>;
}
订单.ts
import { CartStore } from "./cart-store";
export class Order {
id?: string;
userId: string;
total?: number;
address: string;
status?: string;
orderNumber?: string;
createdAt?: number;
updatedAt?: number;
store: CartStore;
items: Array<CartStore>;
isReviewed?: boolean;
}
Cart-Store.ts
import { CartItem } from './cart-item';
export class CartStore {
id?: string;
name: string;
subTotal?: number;
items?: Array<CartItem>;
constructor() {
}
}
Cart-Item.ts
import { Variation } from "./variation";
import { ItemReview } from "./item-review";
import { Size } from "./size";
export class CartItem {
id?: string;
name: string;
price: number;
quantity: number;
thumbnail: string;
variations: Array<Variation>;
size: Size;
subTotal: number;
review?: ItemReview;
constructor() {
}
}
谢谢你帮助我!我从这个领域开始。
【问题讨论】:
-
如果你总是只有一个商店,你可以像stores[0].items等一样直接访问它。否则,在collection.add()调用之前循环商店为每个商店添加一个订单.
-
stores[0] 不起作用,因为它没有引用特定的商店。我把你需要的所有代码都放了,请查看。
标签: angular typescript firebase ionic-framework