2014-06-26 73 views
0

我有AngularJS应用,我送下载SVC文件在服务器上是这样的:AngularJS - 显示加载图标,直到CSV文件下载

public static void DownloadCSV(string csvFile, string fileName) 
    { 
     HttpContext.Current.Response.AppendHeader("Content-Disposition", 
      "attachment; " + 
      "filename=" + fileName + ".csv;" + 
      "creation-date=" + DateTime.Now.ToString() + "; " + 
      "modification-date=" + DateTime.Now.ToString() + "; " + 
      "read-date=" + DateTime.Now.ToString()); 
     HttpContext.Current.Response.ContentType = "text/csv"; 
     HttpContext.Current.Response.Write(csvFile); 
     HttpContext.Current.Response.End(); 
    } 

在客户端我发送给名为“exportToCsv”一个的WebAPI功能它使用DownloadCSV功能,以这样的方式

  var p = document.createElement('a') 
      p.setAttribute('href', "myApp/exportToCsv") 
      p.click(); 

我的问题是,我想提出一个加载图标的用户,直到文件完成下载。

我该怎么做?

回答

0

准备一个带有加载图标(.gif可能)的html,它以屏幕为中心,其余的可能是阴影;

<div ng-show="loading" ng-include src="'loading.html'" ></div> 

在JS端,下载开始前,设置负载为true,完成后其设置为false

$scope.loading = false; // when starts 
$scope.loading = false; // when finished 
+0

我的问题是,我不知道什么时候下载完成!因为我不知道什么时候服务器完成下载 – BrBr

+1

然后,也许您应该搜索或询问有关如何检测文件下载完成时的问题。 – djikay