私は$window.location(url)
を使って残りのAPIから直接CSVファイルをダウンロードしています。
私は約束を使用していますが、ファイルがダウンロードされていますが、私は成功メッセージを表示することができません成功メッセージを表示する必要があります。それは代替ではありません上記のコードは、あなたのdownloadcsv関数内$ q.resolveを使用しようとすると
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;
}
}
}
:
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);
}
残りのコードを表示して、表示しようとしているメッセージのタイプを表示できますか? – Tim
'関数ダウンロード(){ getcsv()を(関数(応答){ 場合(応答=== '成功') {$ scope.msg = '成功';}} )。 } getCSV( ){ var defer = $ q.defer; downloadCSV(); return defer.promise; } 関数dowloadcsv(){ $ window.location(url); } – Sandeep
まず、あなたは約束する価値を決して与えていないので、あなたは決してヒットしません。あなたは 'defer.resolve(value);'を使うことができます。https://docs.angularjs.org/api/ng/service/$q#resolve – CShark