Javascript 角度2:点击事件目标导致无限循环

Javascript 角度2:点击事件目标导致无限循环,javascript,csv,angular,typescript,Javascript,Csv,Angular,Typescript,我想从我的angular2网站下载一个csv文件。为此,我从json文件中获取数据。配置完参数download和href后,我想模拟一下单击以启动下载 然而,这种点击会导致无限的下载循环。。。 如何解决此问题并只下载一个文件 下面是我的component.html代码: <div> <a class="csv-template" (click)="downloadCSVTemplate($event)">Dowload File</a> </di

我想从我的angular2网站下载一个csv文件。为此,我从json文件中获取数据。配置完参数download和href后,我想模拟一下单击以启动下载

然而,这种点击会导致无限的下载循环。。。 如何解决此问题并只下载一个文件

下面是我的component.html代码:

<div>
    <a class="csv-template" (click)="downloadCSVTemplate($event)">Dowload File</a>
</div>
这:


event.target.click();//导致无限的下载循环

不会导致“无限下载循环”,而是通过反复调用downloadCSVTemplate导致无限循环


再次调用click()不清楚您试图做什么。

问题是我的异步调用。下载是在我的href属性更改之前启动的

但是,因为我选择从客户端下载文件,所以我只调用文件,而不经过异步调用。 有了这个,我的修改后就可以下载了

代码如下:

downloadCSVTemplate(event) {
    let locale = this.navContextSrvc.locale;
    event.target.download = 'template_'+ locale +'.csv';
    event.target.href = 'assets/csv/template_'+ locale +'.csv';
}

因为您正在递归调用函数。每次单击时,调用
downloadCSVTemplate
,此函数会触发
click
当单击处理程序从自身发送另一次单击时,您希望发生什么?实际上,您已经编写了一个无需任何终止条件即可调用自身的函数。这显然是一个需要消除的无限循环。为什么不在标记中指定适当的属性呢?我尝试过,当我单击我的链接时,我下载了一个空文件,因为我没有时间获取数据。这就是为什么我想在最后模拟一下点击。但是现在我不知道如何避免在click事件调用的同一个函数中调用click。
downloadCSVTemplate(event) {
    let locale = this.navContextSrvc.locale;
    event.target.download = 'template_'+ locale +'.csv';
    event.target.href = 'assets/csv/template_'+ locale +'.csv';
}