angularjs - $ http在队列中逐个发布请求

时间:2013-08-01 14:55:53

标签: angularjs

在我看来,我有一百行。我想逐个处理所有这些行。 每一行都有状态

  • 未完成(默认情况下)
  • 完整
  • 处理

我想在控制器中完成处理之前和之后更改每一行的状态。 在完成之前,我想将状态更改为处理,完成后,我想更改完成。

<tr ng-repeat="item in pagedItems[currentPage] | orderBy:sortingOrder:reverse ">
                <td>{{item.id}}</td>
                <td>{{item.fname}}</td>
                <td>{{item.lname}}</td>               

                <td>
                    <span ng-class="class{{item.id}}"></span>
                </td>
</tr>

在控制器中我有

$scope.startSending = function() {
    $scope.filteredItems.forEach(function(entry) {
       // Throwing Error! How can dynamically get value of scope variable
            $scope.'class'+entry.id = 'icon-eye-open';
        });

};

请告知我如何从控制器中的$ scope获取动态命名变量的值。

我想更新我的数据库,如果我在foreach循环中添加$ http。

$http.post('/someUrl', data).success(successCallback);

它将一起发送所有100个请求。我可以在队列中一个接一个地执行每个请求吗? 我想在队列中发送请求,它不应该在第一次请求完成之前发送第二个请求等...

任何想法?

由于

1 个答案:

答案 0 :(得分:0)

关于Please advise how can I get value of dynamical named variable from $scope above in controller.答案是Javascript而不是AngularJS相关。只是做:

$scope['class' + entry.id] = 'icon-eye-open';

关于排队$ http请求,您需要查看各种异步流控制解决方案。我已经在Node.js app caolan的async中使用了它,这非常好。您可以在github中找到它,并提供了一个很好的教程here。我相信在您的情况下,您需要forEachSeries

(请尝试将每个帖子限制为1个问题,或者如果不可能,至少限制为N个相关问题。)