使用动态创建的链接在AngularJS中下载文件
Use dynamically created link to download file in AngularJS
我正在使用ng-click调用一个函数,该函数向服务器发出post http请求,然后创建链接。如何使用此创建的链接下载附加到它的文件?
我的模板
<button ng-click="getFile(row)">Download</button>
我的控制器
$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) {
}
);
}
尝试将链接保存在$scope中。然后,使用这个:
<a target="_self" href={{your variable}} download="foo.pdf">
另请查看文档:http://docs.angularjs.org/guide/
答案从这里取:
你如何使用AngularJS或Javascript提供文件下载?
我设法使用$window服务做到了这一点。
ajaxRequest.ajaxPost('http://someApi.com', postData).then(
function(jsonAPI) {
link = jsonAPI.links.download;
$window.location.href = link;
},
function(errorResponse) {
}
);
只需要添加$window作为依赖项
相关文章:
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 通过AngularJS promise下载一个文件
- 如何使用AngularJS和ui-router从Laravel 5.1获取下载文件
- AngularJS:下载二进制图像时出现异步问题
- 从mvc web api httpresponse生成csv,并通过angularjs接收下载
- 如何创建和下载PDF和docx格式的文件,该文件将从AngularJS中的表中的数据创建
- 如何使用AngularJS下载并上传图像
- Angularjs/Restangular,如何命名文件blob以供下载
- 使用动态创建的链接在AngularJS中下载文件
- 从 AngularJS 中的 .NET 控制器下载 PDF
- AngularJS检查下载的json是否在工作副本之间有差异
- 如何在angularjs中请求下载文件
- angularjs + 下载 csv 文件 + 错误: [$injector:unpr] 未知提供程序
- 如何下载由 php readfile() 发送的文件,由 AngularJs 触发$http获取
- Web API 2 - 返回 pdf,在客户端 (AngularJs) 上显示/下载收到的 pdf 文件
- 使用AngularJS和$http.post在MVC应用程序中下载文件
- AngularJS-通过AJAX下载文件
- 在angularjs中下载文件时显示下载进度文本
- 使用AngularJS下载zip文件
- Angularjs下载图像并显示