我正在使用$window.location(url)
直接从rest api下载csv文件。
我需要显示成功消息,即使我使用的是Promise,也正在下载文件,但我无法显示成功消息。
function download() {
getcsv().then(function(response) {
if (response === 'success') {
$scope.msg = 'success';
}
})
}
getCSV() {
var defer = $q.defer;
downloadCSV();
return defer.promise;
}
function dowloadcsv() {
$window.location(url);
}
最佳答案
您可以使用返回承诺的$ timeout服务:
app.factory('downloadService', function($q, $window, $timeout) {
return {
download: function(url) {
var defer = $q.defer();
$timeout(function () {
$window.location.href = url;
}, 1000)
.then(function () {
defer.resolve('success');
}, function () {
defer.reject('error');
});
return defer.promise;
}
}
}
如果上述代码不是替代方法,请尝试在downloadcsv函数中使用$ q.resolve。
关于javascript - Angular Js中的$ window.location成功消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36265014/