如何使用ngClick下载ZIP文件?

时间:2017-06-27 05:35:17

标签: javascript angularjs

我有一个AngularJS函数,我试图通过向/download?id=10发送GET请求来下载文件。

$scope.download = function(){
  $http({
    url: "/download",
    method: "GET",
    params: {id:"10"} 
  });
}

此功能绑定到button标记:<button ng-click="download()">DOWNLOAD</button>

当我点击按钮时,没有任何反应。但如果我将浏览器导航到/download?id=10,它会下载在我后端制作的zip文件。

如何让ng-click方法下载文件?

3 个答案:

答案 0 :(得分:2)

你可以尝试这样

$scope.download = function(){

       window.loaction.href = "/download?id=10";

}

您可以使用

<a href="/download?id=10" download>Download</a>

答案 1 :(得分:1)

您忘了在功能中添加method:GET or POST

  $scope.download = function(){
      $http({
        url: "/download",
        method:'GET'
        params: {id:"10"} 
      });
    }

对于动态参数:

 $scope.download = function(id){
  $http({
    url: "/download",
    method:'GET'
    params: {id:id} 
  });
}

答案 2 :(得分:1)

按钮不需要 ng-click ,您只需使用 <a> 元素替换并添加 href 属性,

<a href="/download?id=10" download>Download</a>

如果您仍想要按钮,请使用 GET 方法获取该文件,

$scope.download = function(){
      $http({
        url: "/download",
        method:'GET'
        params: {id:"10"} 
      });
    }