Angularjs延迟了路径的变化

时间:2016-03-17 19:14:07

标签: javascript angularjs

我是AngularJS的新手,这是我的尝试:

$scope.comparisonlist.forEach(function (script) {
     $http.get('/info/' + script.id)
         .success(function (data) {
              $scope.comparisonResultList.push(data)
          })
          .error(function (data, status) {
                console.error('Repos error', status, data);
           })

});

 $location.path('/comparison');

我试图改变http请求之后的路径(在请求循环之后),但是她发生的事情是它在http请求完成之前改变了路径。我不知道如何解决这个问题。我尝试使用诺言,但它完全不起作用

  <div ng-repeat="result in comparisonResultList">

承诺,当我这样做^^在顶部我什么都没得到,我假设它检测compareResultList是空的莫名其妙

1 个答案:

答案 0 :(得分:0)

当前的promise实现应该有效,在forEach循环中的每个异步操作完成后调用路径更改。

var promises = [];
$scope.comparisonlist.forEach(function (script) {
  promises.push($http.get('/info/' + script.id)
    .success(function (data) {
      $scope.comparisonResultList.push(data)
    })
    .error(function (data, status) {
      console.error('Repos error', status, data);
    })
  )
});
$q.all(prom).then(function () {
  $location.path('/comparison');
});