循环中的angular $ http请求更新列表数据异步

时间:2015-10-23 11:17:52

标签: angularjs

我有ids列表[1,2,3,4],我需要使用此ID进行更新,并且根据我的更新,我需要对显示的列表进行UI更新。 我必须更新列表异步中的每一行,一旦id更新完成,我将为此行进行UI更新

我的方法是制作for循环并为每个id

制作$ http请求
       for index in 0...countUserNames {

            //print("\(index) times 5 is \(index * 5)")

            //UIBUTTON PLAY VIDEO USER
            let customButtonPlayVideoUser = UIButton(frame: CGRectMake(145, 32, 64, 64))
            let imageCustomUserBtn = UIImage(named: "video-play.png") as UIImage?
            customButtonPlayVideoUser.setImage(imageCustomUserBtn, forState: .Normal)
            customButtonPlayVideoUser.addTarget(self, action: "CustomUserVideobtnTouched:", forControlEvents:.TouchUpInside)
            customViewUser.addSubview(customButtonPlayVideoUser) 

            /// set tag
            customButtonPlayVideoUser.tag = index
        }
你怎么看?这应该工作正常吗? 有没有更好的方法呢?

谢谢,

1 个答案:

答案 0 :(得分:1)

通过创建匿名函数调用堆栈来防止代码的更好方法。

for(var i = 0 ; i < ids.length; i++){
     (function()
       {
       $http.get("api/update?Id=" + id).then(function (result) {
            $scope.nodeUpdate = result;   
        });
      )(ids[i]);
}