Как отследить что время стало равно текущему?

Для отслеживания того, что время стало равным текущему в Angular, вы можете использовать функциональность наблюдения изменений (change detection).

Change detection в Angular осуществляется путем сравнения значений свойств компонента с их предыдущими значениями и обновления DOM только в случае обнаружения изменений.

Для решения вашей задачи, вам понадобится добавить функциональность наблюдения изменений к свойству, представляющему время.

Вы можете использовать либо обычное поле класса, либо геттер/сеттер для свойства. В обоих случаях вы должны указать Angular, что это свойство должно подвергаться наблюдению изменений. Для этого вы можете использовать декораторы @Input и @Output и реализовать интерфейс OnChanges для обработки изменений.

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

1. Использование поля класса:

import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';

@Component({
  selector: 'my-component',
  template: `<p>{{ currentTime }}</p>`
})
export class MyComponent implements OnChanges {
  @Input() time: Date;
  currentTime: Date;

  ngOnChanges(changes: SimpleChanges) {
    if (changes.time) {
      this.currentTime = this.time;
    }
  }
}

2. Использование геттера/сеттера:

import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';

@Component({
  selector: 'my-component',
  template: `<p>{{ currentTime }}</p>`
})
export class MyComponent implements OnChanges {
  private _time: Date;
  currentTime: Date;

  @Input()
  set time(time: Date) {
    this._time = time;
    this.currentTime = time;
  }
  get time() {
    return this._time;
  }

  ngOnChanges(changes: SimpleChanges) {
    // дополнительная логика при необходимости
  }
}

Оба этих подхода следят за изменениями времени (проверяются изменения только времени, а не объекта Date в целом), и в случае изменения обновляют свойство currentTime.

Важно отметить, что изменения времени будут обнаружены только при изменении ссылки на объект Date или при вызове метода изменения времени, таких как setHours, setMinutes и т.д.

В целом, используя функциональность наблюдения изменений в Angular и добавляя соответствующую логику в метод ngOnChanges, вы сможете отслеживать изменения времени и выполнять необходимые действия при необходимости.