@Injectable({
providedIn: 'root'
})
export class ShoppingCartService {
carrinho: Subject<ShoppingCart> = new Subject<ShoppingCart>();
constructor(private http: HttpClient) {}
addItem(shoppingCart: ShoppingCart, p: Produto){
shoppingCart.itens.push(p);
shoppingCart.total += 1;
this.shoppingCart.next(shoppingCart);
}
}
Я определил эту услугу, это услуга корзины покупок.Я добавляю его в несколько компонентов, в которых есть продукты, чтобы я мог обновить корзину.Проблема в том, что я не знаю, как узнать состояние корзины покупок в службе, поэтому я могу инициализировать компонент «локальная копия» при отображении компонента.
Вот шоу, которое я использую на компонентах:
shopingCart: ShoppingCart;
constructor(private ShoppingCartService: shoppingCartService ...
ngOnInit() {
// I have to initialize it I get null references on the template.
this.shoppingCart = new ShoppingCart();
this.shoppingCartService.shoppingCart.subscribe((res) => {
this.shoppingCart = res;
});
}
...
addItem(i : number) {
var product : Produto = this.products[i];
this.carrinhoService.addItem(this.shoppingCart, produ);
}