У меня есть приложение электронной коммерции Angular, в котором у меня есть общий компонент с именем HeaderComponent
, а внутри этого компонента у меня есть компонент с именем ShoppingWidgetsComponent
. Я позвонил ShoppingWidgetsComponent
внутри HeaderComponent
, чтобы показать количество товаров в корзине в заголовке, как это
header.component.ts :
<div class="main-menu-wrapper-2" fxLayout="row" fxLayoutAlign="space-between center">
<mat-toolbar class="top-navbar top menu">
<app-shopping-widgets [shoppingCartItems]="shoppingCartItems"></app-shopping-widgets>
</mat-toolbar>
</div>
header.component.ts :
constructor(private cartService: CartService) {
this.cartService.getItems().subscribe(shoppingCartItems => this.shoppingCartItems =
shoppingCartItems);
}
cart.service.ts :
public cartItems: BehaviorSubject<CartItem[]> = new BehaviorSubject([]);
public getItems(): Observable<CartItem[]> {
const itemsStream = new Observable(observer => {
observer.next(products);
observer.complete();
});
return <Observable<CartItem[]>>itemsStream;
}
shopping-widgets.component. html:
<button mat-button class="flex-row-button mat-button" fxLayoutAlign="space-between center" [matMenuTriggerFor]="menu">
<div class="mat-button-wrapper">
<div class="">
<mat-icon class="mat-icon-lg mat-icon material-icons">local_grocery_store</mat-icon>
<span class="cart-count-wrapper">{{ shoppingCartItems.length }}</span>
</div>
<div class="top-cart">
<span>{{ getTotal() | async | currency:productService?.currency:'symbol' }}</span>
</div>
</div>
</button>
shopping-widgets.component.ts :
@Input() shoppingCartItems: CartItem[] = [];
Теперь я хочу сбросить cartItems
BehaviourSubject
так что cartItems
count должен снова отображать 0 внутри shopping.component.html
Как мне этого добиться?