2015-02-23 2 views
1

У меня есть url на мой взгляд, что при нажатии он загружает файл excel. Я хочу добавить в это диалоговое окно угловой прядильщик, чтобы показания счетчика показывались при загрузке файла.angularjs условный http получить запрос в поле зрения

Я могу запустить и остановить счетчик в контроллере, но если я поставлю запрос на получение там, я не получу файл Excel.

Есть ли способ сделать это с точки зрения? или любой другой вариант?

Спасибо

PS: Приведенный ниже код является HREF ссылку в окне Я хочу добавить угловую-кок, когда кнопка экспорта нажата, и файл загружается и останавливается, когда его полная

<DIV> 
     <a type="media_type" class="btn btn-primary" 
        href="/api/prj/report/job/{{jobId}}">Export</a> 
      </div> 

HTML-код блесны является следующим, и я могу использовать его, но потому, что мой HTTP GET запрос в представлении, я хочу знать, как я могу знать, является ли файл загружается (так что я показываю прядильщик) и остановите его, когда его завершите

<span us-spinner spinner-key="spinner-1"></span> 
+1

, пожалуйста, покажите свой код ... Мы не можем помочь вам с таким количеством информации –

+0

Я добавил дополнительную информацию. – cpu2007

+0

Я читал, что я не могу сделать запрос href от контроллера из-за того, насколько угловые работы. это все равно, чтобы перехватить вызов href из представления на сервер и действовать на ответ? – cpu2007

ответ

0

Я думаю, что вы можете сделать это с помощью следующей разметки

<span ng-if="serverIsProcessing" us-spinner spinner-key="spinner-1"></span> 
    <a type="media_type" class="btn btn-primary" 
       ng-click="export({{jobId}})">Export</a> 

Внутри контроллера, добавьте следующую функцию (не забудьте добавить зависимость в «$ окна» и «$» ресурс):

$scope.serverIsProcessing = false; 

$scope.export = function(jobId){ 
     $scope.serverIsProcessing = true; 
     $resource("/api/prj/report/job/" + jobId).get(function(id){ 
      $window.open("/api/downloadTempFile/" + jobId); 
      $scope.serverIsProcessing = false; 
     }, function(error){ 
      //Handle error if needed 
     }); 
}; 

на контроллере вам потребуется 2 действия:

  • действия для создания файла А nd сохранить его в месте для временных файлов
  • действие для загрузки ранее созданного файла (и удалить его после того, как файл был загружен).
+0

Кнопка экспорта находится в диалоговом окне, счетчик используется, чтобы показать, что файл загружается после завершения загрузки. поэтому я пытаюсь использовать счетчик, чтобы пользователь знал, что сервер все еще обрабатывает мой запрос. – cpu2007

+0

Что вы подразумеваете под «до сих пор обрабатывая мою просьбу»? –

+0

, когда я нажимаю кнопку экспорта, запрос делается на сервере, данные, относящиеся к этому запросу, затем собираются из базы данных и, наконец, создается файл excel. когда запрос данных большой, может потребоваться несколько секунд, прежде чем сервер ответит на мое действие по экспорту. Я хочу, чтобы o убедиться, что время зависания между мной, нажатием кнопки экспорта и ответом сервера, может быть обработано с помощью счетчика на экране. – cpu2007

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