Как получить переменную состояния обслуживания в Angular - PullRequest
0 голосов
/ 08 февраля 2019
@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);
}
...