在Angular中重复自动单击按钮的脚本

时间:2018-06-07 10:09:07

标签: angular

我有一个按钮,需要每5秒钟自动重复按下一次。

该按钮定义为:

<button id="refresh" class="btn- fa fa-refresh" aria-hidden="true" value="referesh" (click)="ngOnInit()">&nbsp; Refresh</button>

在寻找解决方案后,我写了这段代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
setInterval(function(){
  $('#refresh').trigger('click');
}, 5000);
</script>

虽然上面的脚本在HTML环境中有效,但它在角度场景中并不起作用。

我是Angular的新手,无法弄清楚如何做到这一点。任何帮助将非常感谢!

3 个答案:

答案 0 :(得分:1)

如果您创建了按钮所在的组件,并且您想要做的就是每隔5秒调用ngOnInit中定义的代码,则可以直接调用该方法

constructor()
{
    setInterval(() => this.ngOnInit(), 5000);
}

为了使事情更清晰,将ngOnInit中的代码移动到一个单独的函数(根据定义,在INit上应该只调用一次)

ngOnInit()
{
   this.myMethod();//Initialisation
   setInterval(() => this.myMethod(), 5000);
}

meMethod()
{
   //Code you want to call repetitively
}

答案 1 :(得分:0)

尝试按角度方式按下按钮

像这样

<button #myButton id="refresh" class="btn- fa fa-refresh" aria-hidden="true" value="referesh" (click)="triggerClick()">&nbsp; Refresh</button>

并在你的打字稿中,给myButton一个ViewChild参考

@ViewChild('myButton') myButton : ElementRef;

triggerClick() {
    let el: HTMLElement = this.myButton.nativeElement as HTMLElement;
    setTimeout(()=> el.click(), 5000);
}

答案 2 :(得分:0)

您需要在component.ts中创建一个函数,然后在需要调用该函数的click事件上创建。

  

(点击)= “刷新()”

<强> component.html

<button id="refresh" class="btn- fa fa-refresh" aria-hidden="true" value="referesh" (click)="refresh()">&nbsp; Refresh</button>

<强> component.ts

refresh() {
  console.log('Refresh Clicked')
}