使用 java 脚本创建的锚标记调用指向成功或失败的 API 调用
Invoke a API call directing to success or failure with anchor tag created using java script
我有一个按钮可以将其作为锚标记或单击按钮时 link.Added 下面的代码。
download() {
let link = document.createElement('a');
document.body.appendChild(link);
//link.href = this.downloadFile; // can i call a function here which has API invoking?
link.onclick = this.downloadFile;
link.click();
}
downloadFile() {
this.Service.download(
id
).subscribe((data: any) => {
},
(error: any) => {
});
}
如何使用创建的锚标记调用此函数?
不要使用 link.onclick,而是使用 link 上的 addEventListener 方法来注册您的下载方法:
function download() {
var link = document.createElement('a');
document.body.appendChild(link);
link.addEventListener('click', this.downloadFile);
link.click();
}
function downloadFile() {
console.log("Here we go");
}
但要小心,因为如果您的方法 downloadFile 是 class 方法,则 downloadFile 函数中的 "this" 将未定义或等于 window 全局对象,您将拥有使用 link.addEventListener('click', this.downloadFile.bind(this));
硬绑定 this 上下文
我有一个按钮可以将其作为锚标记或单击按钮时 link.Added 下面的代码。
download() {
let link = document.createElement('a');
document.body.appendChild(link);
//link.href = this.downloadFile; // can i call a function here which has API invoking?
link.onclick = this.downloadFile;
link.click();
}
downloadFile() {
this.Service.download(
id
).subscribe((data: any) => {
},
(error: any) => {
});
}
如何使用创建的锚标记调用此函数?
不要使用 link.onclick,而是使用 link 上的 addEventListener 方法来注册您的下载方法:
function download() {
var link = document.createElement('a');
document.body.appendChild(link);
link.addEventListener('click', this.downloadFile);
link.click();
}
function downloadFile() {
console.log("Here we go");
}
但要小心,因为如果您的方法 downloadFile 是 class 方法,则 downloadFile 函数中的 "this" 将未定义或等于 window 全局对象,您将拥有使用 link.addEventListener('click', this.downloadFile.bind(this));
硬绑定 this 上下文