Как вызвать событие через 3 секунды на основе условия в angular - PullRequest
0 голосов
/ 16 июня 2020

У меня есть div, содержащий событие click, здесь, как только я нажимаю "щелкнуть здесь", должно появиться предупреждение о ярлыке на основе 2 условий: первое, если getListData истинно, и второе, если я нажимаю ярлык только после 5 se c getListData верно. Я пробовал, но он не работает должным образом. Вот код ниже

home.component. html

<div (click)="clickhere()">Click here</div>

home.component.ts

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router'; 
@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
  getListData: boolean = false;
  constructor(private router: Router) { }

  ngOnInit() {

  }
  clickhere(){
      this.getListData = true;
      console.log(this.getListData);
      setTimeout(function(){
      if(this.getListData == true){
         alert('true'); 
      }
      }, 3000);
  }

}

1 Ответ

0 голосов
/ 16 июня 2020

Контекст 'this' недоступен внутри функции setTimeout. Вы можете объявить это как стрелочную функцию для отображения предупреждения.

clickhere () {this.getListData = true; console.log (this.getListData); setTimeout (() => {
if (this.getListData) {alert ('true');}}, 3000);
}

Для справки вы можете увидеть здесь: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...