使用AngularJS下载动态创建的zip文件的最佳方法是什么?我可以使用window.open来访问URL,但这似乎是非角度的,我可以使用iframe,但是我不知道如何在RestService中获得对它的引用。
允许下载动态创建的文件的最佳Angular实现是什么?
// Current solution
RestService.createInstance( data )
.then(function( id) {
//return RestService.generateArchive( id );
var url = location.href;
if( url.indexOf('#') != -1 ) { url = url.substring(0, url.indexOf('#')); }
url += '?ID=' + id;
window.open( url );
})
.then(function( success ) {
// Obviously won't work due to security
});
另外,您如何检查响应是否被拒绝?似乎您做不到,但以防万一。
最佳答案
小样本:
HTML:
<iframe ng-src="{{url}}" style="display:none"/>
JS:
$scope.url = 'google.com';
RestService.createInstance( data )
.then(function( id) {
//return RestService.generateArchive( id );
var url = location.href;
if( url.indexOf('#') != -1 ) { url = url.substring(0, url.indexOf('#')); }
url += '?ID=' + id;
$scope.url = $sce.trustAsResourceUrl(url);
})
这应该工作一些备注:
当然不要忘记注入$ sce
如果您从同一网址多次下载,请将两次下载之间的网址重设为google.com之类的内容
关于javascript - 下载动态创建的zip存档的Angular解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26642116/