Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下载动态创建的zip存档的角度解决方案_Javascript_Angularjs - Fatal编程技术网

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

Javascript 下载动态创建的zip存档的角度解决方案,javascript,angularjs,Javascript,Angularjs,使用AngularJS下载动态创建的zip文件的最佳方式是什么?我可以使用window.open点击URL,但这看起来很不棱角分明,我可以使用iframe,但我不知道如何在rest服务中获得对它的引用 允许下载动态创建的文件的良好角度实现是什么 // Current solution RestService.createInstance( data ) .then(function( id) { //return RestService.generateArchive(

使用AngularJS下载动态创建的zip文件的最佳方式是什么?我可以使用window.open点击URL,但这看起来很不棱角分明,我可以使用iframe,但我不知道如何在rest服务中获得对它的引用

允许下载动态创建的文件的良好角度实现是什么

// 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"/>
这应该适用于以下几点:

  • 当然,别忘了注入$sce
  • 如果您从同一url多次下载,请将下载之间的url重置为类似google.com的内容

您可以将window.open替换为将url分配给范围变量。然后在ng src中为隐藏的iframe使用它。另外,在代码中,不要忘记在url上执行$sce.trustAsResourceUrl,否则iframe不会加载。我想我理解你的意思。不要连锁我的承诺,让它返回到我的指令,将url添加到$scope,包装在$scope.url=$sce.trustAsResourceUrl(theactualurl)中,然后包装在指令中的iframe中。是这样吗?如果没有,你有一个小例子吗?即使是这样,你也应该把它作为一个解决方案来发布,以获得更多的信任,让更多的人去寻找。很好的答案,这是一个更加有角度的方法。
$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);
    })