当前位置: 首页 > 知识库问答 >
问题:

如何根据angular中的条件在3秒钟后调用事件

赫连坚
2023-03-14

我有一个包含click事件的div,在这里,一旦我单击“click here”,标签警报将基于2个条件出现,第一个条件是getListData为true,第二个条件是我仅在getListData为true的5秒后单击标签。我试过了,但效果不好。下面是代码

<div (click)="clickhere()">Click here</div>
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个答案

许出野
2023-03-14

在setTimeout函数中,this上下文不可用。您可以将其声明为箭头函数来显示警报。

clickhere(){this.getListData=true;console.log(this.getListData);setTimeout()=

如需参考,请参见:https://stackoverflow.com/a/41106146/7309449

 类似资料:
  • 问题内容: 我有一个表格,其中包含有关 民事和劳工* 两类人员可以完成的不同类型事件的信息 * 所以对于他们每个人,我都有各自的表格 然后事件表会列出所有可能的事件 然后我打算将信息存储在其他表中 具有eventype的人,从事这项工作的人(工人或公民) 现在在这个设计中,如果我只有一种人(又称“平民”),我不知道如何与谁完成工作相关联,而我只会在最后一张表中将“ civil_id”存储在“人”字

  • 所以我用jquery做了一个自动完成。Ajax用于从远程位置获取大量xml文件。如果我搜索ex.“两个半男人”,它会用ajax进行大约16次查询(除了3次之外,每一次输入的字母,先看代码)。 我希望它在用户按下最后一个键后一秒钟执行Ajax请求,因此它将执行一个查询而不是16个查询。 因此,如果用户在上次按键事件后 1 秒之前按另一个键,则它尚不会执行查询。 有什么想法吗?

  • 问题内容: 这个问题似乎让人难以置信,但我无法弄清楚。我知道您可以在python中检查数据类型,但是如何根据数据类型设置条件呢?例如,如果我必须编写一个对字典/列表进行排序并将所有整数加起来的代码,那么如何隔离搜索以仅查找整数? 我想一个简单的例子看起来像这样: 那么对于第3行,我将如何设置这样的条件? 问题答案: 怎么样, 但更干净的方法就是

  • 问题内容: 我有一个名为@status的变量,该变量在此select语句之前设置: 我只想选择if列,否则我想为shipwith选择null。我该如何完成? 问题答案:

  • 问题内容: 我想在两次通话之间延迟5秒…我该如何在jQuery中执行此操作…似乎jQuery对此不起作用… 问题答案: 您可以使用普通的javascript,这将在5秒后调用一次your_func: 如果您的函数没有参数且没有显式接收器,则可以直接调用我曾经用过一个插件。它具有和方法。

  • 问题内容: 我有一个熊猫DataFrame,里面有很多值。 如何删除这样的列? 我试图这样做: 有更优雅的方法吗? 问题答案: 这是保留每列中小于或等于指定数量的nan的列的另一种选择: 在我的测试中,这似乎比李建勋在我测试的案例中建议的放置列方法要快一些: