I have a service for pulling and pushing goods named BasketService.
export class BasketService {
apiUrl = 'http://0.0.0.0:8000';
basket: Observable<Basket>;
constructor(private httpClient: HttpClient) {}
getBasket(): Observable<Basket> {
this.basket = this.httpClient.get<Basket>(`${this.apiUrl}/api-auth/basket/`);
return this.basket;
}
addToBasket(sku: Sku, count: number): Observable<Basket> {
const oBasket = this.httpClient.post<Basket>(`${this.apiUrl}/api-auth/basket/`, {items:
[{sku: sku.pk, quantity: count}]});
return oBasket;
}
}
I subscribe to change basket in my component BasketService.getBasket().subscribe(), after that i push some goods to basket by calling addToBasket function. I want to update subscriper who subscribe to getBasket, but as expected this not doing.
export class BasketComponent implements OnInit {
basketIcon = faShoppingBasket;
sum = 0;
sumVerbose = 'корзина пуста';
basket: Basket;
constructor(private router: Router, private basketService: BasketService) {
}
openBasket() {
this.router.navigate(['basket']);
}
ngOnInit(): void {
this.basketService.getBasket().subscribe(basket => {this.basket = basket; console.log(basket); });
//console.log(this.basket);
}
}
export class PromoSkuComponent implements OnInit {
basketIcon = faShoppingBasket;
@Input() title: string;
@Input() pk: number;
@Input() price: number;
@Input() image: string;
constructor(private router: Router, private basketService: BasketService) {
}
ngOnInit(): void {
}
addToBasket() {
this.basketService.addToBasket({pk: this.pk} as Sku, 1).subscribe(basket => basket);
}