Угловой Материал - Используйте Индикатор Прогресса внутри Закусочной - PullRequest
0 голосов
/ 31 мая 2018

Я хочу добавить индикатор выполнения углового материала внутри моей угловой закусочной.Смысл индикатора выполнения - это обратный отсчет, поэтому если снэк-бар открыт в течение 5 секунд, то в течение 5 секунд индикатор выполнения переключается со 100 -> 0 или что-то подобное.

Тем не менее, у меня возникли некоторые проблемы с изменением прогресса.Код ниже - это то, что у меня есть в моей закусочной.По сути, каждые x секунд я увеличиваю значение индикатора выполнения.Это нормально работает в обычном компоненте, но в снэк-баре значение прогресса останавливается сразу после его запуска.

export class PizzaPartyComponent implements OnInit{
  constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }
  intervalSubscription;
  countdown: number = 0;
  ngOnInit(){
    const source = interval(100);

    this.intervalSubscription = source.subscribe(val => {
        this.countdown += 1;
        console.log("Interval", val, " - ", this.countdown)
    });
  }

  ngOnDestroy(): void {
    console.log("Snackbar Destoryed")
    this.intervalSubscription.unsubscribe();
  }
}

Консоль читает

Интервал 0 - 1

Интервал 0 - 2

Интервал 0 - 3

Интервал 0 - 4

Интервал 0 - 5

И так до снэк-барауничтожается (закусочная закрывается около 0-30).

countdown в коде обновляется нормально, однако значение индикатора выполнения рано застревает.Если countdown отображается на экране, оно изменяется от 0 до 2 и не обновляется после этого. Он всегда выполняет 2 цикла интервала. Единственное, о чем я могу думать, это после того, как ngOnInit() завершается, затем обнаружение изменений для countdown останавливается.

enter image description here

...