Я хочу проверить, является ли текущая дата до или после даты, например, перед тем, как она должна показывать false, в противном случае - true.

Проект находится в Angular 8, и это выглядит так:

export class AppComponent {
    today = new Date();
    dateToCheck = new Date("2019-01-01");
    result = false;
    checkDate() {
        if(this.today < this.dateToCheck) {
           this.result = false;
        } else { this.result = true;
          }
    }  
}

это работает нормально, если он подключен к кнопке в HTML и кнопка нажата

<button (click)="checkDate()">check</button>
the result is: {{result}}

Но есть ли способ заставить его вызывать себя при загрузке страницы, не нажимая эту кнопку?

1
Leo Messi

1 ответ

Почему бы не вызвать его в конструкторе или ngOnInit :

ngOnInit: метод обратного вызова, который вызывается сразу после того, как детектор изменений по умолчанию впервые проверил свойства привязки данных к директиве и до того, как были проверены дочерние элементы представления или содержимого. Он вызывается только один раз, когда создается директива.

export class AppComponent implements OnInit {
    today = new Date();
    dateToCheck = new Date("2019-01-01");
    result = false;

    ngOnInit() {
       this.checkDate();
    }

    checkDate() {
        if(this.today < this.dateToCheck) {
           this.result = false;
        } else { 
           this.result = true;
        }
    }  
}
58579322