Angular Js中的$ window.location成功消息

时间:2016-03-28 15:03:28

标签: javascript angularjs rest csv

我使用$window.location(url)直接从rest api下载csv文件。

我需要显示成功消息,即使我使用了promises,文件也会被下载,但我无法显示成功消息。

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);
}

1 个答案:

答案 0 :(得分:1)

您可以使用返回承诺的$ 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。