@ Компоненты OnPush без ввода в угловых

У меня есть сценарий, где у меня есть @Input-less OnPush компонент в угловых. Если я позвоню markForCheck()будет проверена привязка вида в шаблоне моего компонента?

Я имею в виду, мой компонент OnPush а также markForCheck() помечает всех предков, которые будут проверены, и, поскольку у моего компонента нет @Input, каково будет поведение Angular здесь? Будет ли Angular пропускать проверку привязок вида компонента или всегда будет проверять?

1 ответ

Решение

Как вы можете видеть из примера исходного кода из ChangeDetectorRef, Вид показывает значение numberOfTicks который обновляется, когда markForCheck() называется. Обратите внимание, что компонент не имеет @Input() привязок.

 @Component({
    selector: 'cmp',
    changeDetection: ChangeDetectionStrategy.OnPush,
    template: `Number of ticks: {{numberOfTicks}}`
  })
  class Cmp {
    numberOfTicks = 0;

    constructor(private ref: ChangeDetectorRef) {
      setInterval(() => {
        this.numberOfTicks++;
        // the following is required, otherwise the view will not be updated
        this.ref.markForCheck();
      }, 1000);
    }
  }
Другие вопросы по тегам