ChangeDetector не запускается

<div class="fields-container" *ngIf="props">
    <nav>
        <div class="nav nav-tabs" role="tablist">
            <a (click)="changeTab(1)" class="nav-link cursor-pointer" [ngClass]="{'active': activeTab == 1}" data-toggle="tab"
                role="tab">Basic</a>
            <a (click)="changeTab(2)" class="nav-link cursor-pointer" [ngClass]="{'active': activeTab == 2}" data-toggle="tab"
                role="tab">Advanced</a>
        </div>
    </nav>
</div>

  changeTab(tab) {
    this.activeTab = tab;
    // this.cdr.detectChanges();
  }

Первый раз, когда props становиться true, все работает Второй раз, при клике на кнопку, cdr уже не вызывается сам, необходимо вызывать вручную через this.cdr.detectChanges().

Кода мало, сказать точную причину сложно, но у вас такое было, что ломался запуск changeDetector-а? По идеи, это происходит потому, что событие (click) больше не вызывает detectChanges автоматически, то есть зона потеряна?

Если добавлю

interval(1000).subscribe(r => {
  this.testValue = Math.floor(Math.random() * 1000);
})

в конструктор, то changeDetector запускается каждую секунду, и не "ломается", так, как ломается на событиях.


Ответы (0 шт):