使用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/

10-16 18:42