angularjs 视图中的条件 http get 请求
angularjs conditional http get request in view
我认为 url 单击它会下载 excel 文件。
我想向该对话框添加一个 angular-微调器,以便在下载文件时显示微调器。
我可以启动和停止控制器中的微调器,但如果我将获取请求放在那里,我不会得到 excel 文件。
有什么办法可以从视图上做到这一点吗?或任何其他选项?
谢谢
PS:
下面的代码是视图中的 href link
我想在单击导出按钮时添加 angular-微调器并且正在下载文件并在完成时停止
<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>
我认为您可以使用以下标记来做到这一点
<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>
在您的控制器中,添加以下函数(不要忘记添加对“$window”和“$resource”的依赖):
$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 个操作:
- 创建文件并将其存储在临时文件位置的操作
- 下载先前创建的文件的操作(并在文件下载后将其删除)。
我认为 url 单击它会下载 excel 文件。 我想向该对话框添加一个 angular-微调器,以便在下载文件时显示微调器。
我可以启动和停止控制器中的微调器,但如果我将获取请求放在那里,我不会得到 excel 文件。
有什么办法可以从视图上做到这一点吗?或任何其他选项?
谢谢
PS: 下面的代码是视图中的 href link 我想在单击导出按钮时添加 angular-微调器并且正在下载文件并在完成时停止
<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>
我认为您可以使用以下标记来做到这一点
<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>
在您的控制器中,添加以下函数(不要忘记添加对“$window”和“$resource”的依赖):
$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 个操作:
- 创建文件并将其存储在临时文件位置的操作
- 下载先前创建的文件的操作(并在文件下载后将其删除)。