Ionic 4-получить обновление переменной с помощью BehaviorSubject

Дома у меня есть список продуктов, который при нажатии открывает модальный продукт с кнопкой для добавления в корзину. При добавлении сумма появляется рядом со значком. Я хочу закрыть этот режим в app.component, чтобы обновить значок в нижнем колонтитуле. Мне нужно обновить эту корзину модальным значением, которое было закрыто без обновления.

service.ts

public totalShop: BehaviorSubject<String>;

 constructor() {
    this.totalShop = new BehaviorSubject('0');       
 }

 setTotalShop(val) {    
    this.totalShop.next(val);    
  }

  clearTotalShop() {
    this.totalShop.next('0');
  }

  getTotalShop(){    
    return this.totalShop.asObservable();
  }

modalProduto.ts

fnShop(){
    quantidade = quantidade +1
    this.servico.setTotalShop(quantidade)
 }

app.component.ts

quantshop;
 subscription: Subscription;

 ngOnInit(): void {
   this.subscription = this.servico.getTotalShop().subscribe(val => this.quantshop = val);
   console.log(this.quantshop)
}

app.module

  providers: [servico]

изображение

введите здесь описание изображения


person alebarros    schedule 08.11.2019    source источник


Ответы (1)


Я полагаю, вы используете значок углового материала.

Вы можете использовать угловой асинхронный канал в своем html.

<mat-icon [matBadge]="global.getTotalShop() | async">icon</mat-icon>

Вам нужно сделать сервис общедоступным, чтобы получить к нему доступ в html, или создать другую переменную в component.ts, которую вы назначаете BehaviourSubject.

person Havald    schedule 08.11.2019
comment
Ничего не происходит, он получает значение по умолчанию, равное нулю - person alebarros; 08.11.2019
comment
обновил имя службы, было неправильно .. но все равно не получил результат - person alebarros; 08.11.2019