下载动态创建的zip存档的角度解决方案

时间:2014-10-29 22:57:54

标签: javascript angularjs

使用AngularJS下载动态创建的zip文件的最佳方法是什么?我可以使用window.open点击URL,但这看起来非常非Angular,我可以使用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
    });

另外,您如何检查回复是否被拒绝?好像你不能,但为了以防万一。

1 个答案:

答案 0 :(得分:1)

小样本:

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