2015-09-15 4 views
0

Мне нужно получить обратный вызов успеха после успешного завершения загрузки файла в браузере клиента. Поэтому я использую библиотеку $ .fileDownload() jquery в моем угловом коде. я получил эту ссылку как ссылку [Download a file from server using angularjs1

это мой код index.html

<!DOCTYPE html> 
<html ng-app="fileDownload"> 

    <head> 
    <meta charset="utf-8" /> 
    <title>AngularJS Plunker</title> 
    <link data-require="[email protected]" data-semver="3.2.0" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" /> 
    <script>document.write('<base href="' + document.location + '" />');</script> 
    <link rel="stylesheet" href="style.css" /> 
    <script data-require="[email protected]" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.js" data-semver="1.2.17"></script> 
    <script data-require="[email protected]*" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular-cookies.js"></script> 
    <script src="app.js"></script> 
    <script src="controller.js"></script> 
    <script src="service.js"></script> 
    </head> 
<body ng-controller="DownloadCtrl"> 
    <button class="btn btn-default" data-ng-click="download()">Download1</button> 
</body> 
</html> 

Это мой контроллер

angular.module("fileDownload").controller('DownloadCtrl', ['$scope', '$element', '$attrs', '$timeout', function ($scope, $element, $attrs, $timeout) { 

       $scope.progress = 0; 

       function prepare(url) { 
        alert("Please wait", "Your download starts in a few seconds.", $scope.progress); 
        fakeProgress(); 
       } 
       function success(url) { 
        alert('download complete'); 
       } 
       function error(response, url) { 
        alert("Couldn't process your download!"); 
       } 

       function fakeProgress() { 
        $timeout(function() { 
         if ($scope.progress < 95) { 
          $scope.progress += (96 - $scope.progress)/2; 
          console.log('dialogs.wait.progress', { 'progress': $scope.progress }); 
          fakeProgress(); 
         } 
        }, 250); 
       } 

       $scope.download = function() { 
        $scope.progress = 0; 
        $.fileDownload("abc[LR].mkv", { prepareCallback: prepare, successCallback: success, failCallback: error }); 
       } 

       $scope.download(); 

}]); 

с помощью JQuery FileDownload JS, как https://cdnjs.cloudflare.com/ajax/libs/jquery.fileDownload/1.4.2/jquery.fileDownload.js

Это $. fileDownload функция не запускает успешную загрузку

$.fileDownload("abc[LR].mkv", { prepareCallback: prepare, successCallback: success, failCallback: error }); 
    } 

Итак, в чем проблема? Пожалуйста, помогите мне.

ответ

Смежные вопросы