Mam funkcję Angularjs, że staram się pobrać plik, wysyłając żądanie na /download?id=10.

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

Ta funkcja jest związana z button tag: <button ng-click="download()">DOWNLOAD</button>.

Kiedy klikam przycisk, nic się nie dzieje. Ale jeśli nawiguję moją przeglądarkę do /download?id=10, pobiera plik ZIP, który został wykonany w moim zapleczu.

Jak zrobić metodę ng-click pobierz plik?

1
Username 27 czerwiec 2017, 08:35

3 odpowiedzi

Najlepsza odpowiedź

Możesz spróbować tak

$scope.download = function(){

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

}

Lub

Możesz użyć

<a href="/download?id=10" download>Download</a>
2
Dinesh undefined 27 czerwiec 2017, 05:40

Zapomniałeś dodać method:GET or POST w swojej funkcji

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

Dla dynamicznych parametrów:

 $scope.download = function(id){
  $http({
    url: "/download",
    method:'GET'
    params: {id:id} 
  });
}
1
Ved 27 czerwiec 2017, 05:47

Nie musisz mieć ng-click , możesz po prostu zastąpić element {x1}} i dodać {{x2 }} Nieruchomość,

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

Jeśli nadal chcesz mieć przycisk, użyj GET , aby uzyskać plik,

$scope.download = function(){
      $http({
        url: "/download",
        method:'GET'
        params: {id:"10"} 
      });
    }
1
Sajeetharan 27 czerwiec 2017, 05:40