У меня есть проект Angular2, связанный напрямую с Firebase.Структура моей базы данных представлена на рисунке ниже.Итак, у нас есть пара объектов.
Main это заказы, затем порядок ключей, некоторая дополнительная информация и еще один объект "items", который содержит несколько объектов, таких как 0, 1 и т. Д. У каждого из них есть объект.называется "продукт", который имеет некоторые другие параметры ...
orders
-> datePlaced,
items
-> 0
-> quantity, totalPrice, product
->
imageUrl,
price,
title
Я хочу сказать, что когда я создаю вкладку "Мои заказы", я хотел бы получить информацию о каждом элементе в определенном порядке, напримерЯ вижу список ордеров и маленькую кнопку «Просмотр ордера», нажимаю и вижу детали об этом ордере с помощью специального ключа.
Я подготовил вид с ордерами, кнопками, но не могу взять какие-либо объекты из ордеров объектов,У меня есть пустая страница.
order-details.component.ts
export class OrderDetailsComponent implements OnInit, OnDestroy {
order$;
userId: string;
userSubscription: Subscription;
constructor(private orderService: OrderService, private authService: AuthService) {}
async ngOnInit() {
this.userSubscription = this.authService.user$.subscribe(user => this.userId = user.uid);
this.order$ = this.authService.user$.switchMap(u => this.orderService.getOrdersByUser(u.uid));
}
ngOnDestroy() {
this.userSubscription.unsubscribe();
}
}
order-details.component.html
<div class="card" *ngIf="order$ | async as order">
<div class="card-body">
<h5 class="card-title">Your Order</h5>
<p class="card-text">You ordered {{ order.datePlaced | date }} items</p>
<ul class="list-group list-group-flush">
<li *ngFor="let order of order.shipping" class="list-group-item">
{{ order.city }} x {{ order.city }}
<div class="float-right">
{{ order.totalPrice | currency:'USD':'symbol' }}
</div>
</li>
<li class="list-group-item font-weight-bold">
Total
<div class="float-right">
{{ order.totalPrice | currency:'USD':'symbol' }}
</div>
</li>
</ul>
</div>
</div>
order.service.ts
export class OrderService {
constructor(private db: AngularFireDatabase, private shoppingCartService: ShoppingCartService) { }
async placeOrder(order) {
let result = await this.db.list('/orders').push(order);
this.shoppingCartService.clearCart();
return result;
}
getOrders() {
return this.db.list('/orders');
}
getOrdersByUser(userId: string) {
return this.db.list('/orders', {
query: {
orderByChild: 'userId',
equalTo: userId
}
});
}
}
Как получить каждый параметр из сложного объекта "orders"?