我遇到了这个问题:
我制作了一个REST应用程序,它根据我从控制器发送的数据创建一个文件。
我将文件保存在服务器上,然后让客户端下载它。
代码如下所示:
myAppFactory.exportData($scope.userId, $scope.selectedUserScript.scriptId, $scope.selectedUserPatient.patientId,
$scope.sDateMillis, $scope.eDateMillis, $scope.exportObject).success(function(data) {
window.location = "rest/pName/download/" + $scope.userId + "/" + data;
// deleteFile(data);
});
}
我从服务中调用我的工厂,创建文件,完成后,该行:
window.location = ...
浏览器会自动让我下载文件。它打开保存对话框到(客户端)的下载文件夹。
这很好用,但这是我的问题。 从服务器下载特定文件后,我需要删除它。
我做了这个功能:
deleteFile = function(data) {
myAppFactory.deleteFileFromDSS($scope.userId, data).success(function(data) {
console.log("delete:" + data);
})
}
在服务器端,所有函数都有它们的实现,但是我的问题是,因为它是来自angularJS的异步调用,所以函数delete通常在下载开始之前调用。
所以我试图从window.location函数得到一些响应,但我根本无法理解。
所以我需要的是:以某种方式从单击SAVE按钮获得响应并完成下载过程,并使用if语句完成工作
我希望你能解决我的问题,请帮助。