gpt4 book ai didi

javascript - 使用动态创建的链接在 AngularJS 中下载文件

转载 作者:行者123 更新时间:2023-12-03 07:25:00 26 4
gpt4 key购买 nike

我正在使用 ng-click 调用一个函数,该函数向服务器发出 post http 请求,然后创建一个链接。如何使用此创建的链接来下载附加的文件?

我的模板

<button ng-click="getFile(row)">Download</button>

我的 Controller

$scope.getFile = function(row){
row.isSelected = true;

var link = null;

var postData = {
"data" : {
"type": "member_report",
"relationships": {
"member" : {
"data": {
"type": "user",
"id": memberID
}
}
}
}
}

ajaxRequest.ajaxPost('http://someApi.com', postData).then(
function(jsonAPI) {
link = jsonAPI.links.download; //here is the response link
//todo something with it to download file
},
function(errorResponse) {
}
);
}

顺便说一句,ajaxRequest 只是一个简单的 $http 服务包装器。

最佳答案

如果我理解你的意思,那么我想你想在动态获取链接后立即启动下载,那么你可以按如下方式进行

$scope.getFile = function(row){
row.isSelected = true;

var link = null;

var postData = {
"data" : {
"type": "member_report",
"relationships": {
"member" : {
"data": {
"type": "user",
"id": memberID
}
}
}
}
}

ajaxRequest.ajaxPost('http://someApi.com', postData).then(
function(jsonAPI) {
link = jsonAPI.links.download;

// Now we want to download the link
var downloadLink = document.createElement('a');
downloadLink .href = link;
// now set the visibility to hidden so that it doesnt effect the frontend layout
downloadLink .style = 'visibility:hidden';
downloadLink .download = 'file_name';
// now append it to the document, generate click and remove the link
document.body.appendChild(downloadLink );
downloadLink .click();
document.body.removeChild(downloadLink );

},
function(errorResponse) {
}
);
}

关于javascript - 使用动态创建的链接在 AngularJS 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com