我有一个按钮,需要每5秒钟自动重复按下一次。
该按钮定义为:
<button id="refresh" class="btn- fa fa-refresh" aria-hidden="true" value="referesh" (click)="ngOnInit()"> 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的新手,无法弄清楚如何做到这一点。任何帮助将非常感谢!
答案 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()"> 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()"> Refresh</button>
<强> component.ts 强>
refresh() {
console.log('Refresh Clicked')
}