自己附上两个 ng-repeat

attach two ng-repeat themselves

这是我的问题,我有两个不同的循环,每个循环都来自不同的 http 请求。这是我得到的屏幕:

我想要的是,下面"claire pagniez"我想要“1”,下面"Michel Polnaref"我想要3,下面"mathilde zimmer"我想要“1”。

现在每个整数都被重复写入,我不希望这样,我希望它们在好的元素下面。

这是我的代码:

在我看来:

<ul ng-repeat="user in userbyorga track by $index">{{user.name}}<li ng-repeat="item in numtickets track by $index">{{item}}</li></ul>

在我的控制器中:

这是我用来显示我的整数(票数)的东西,我需要 2 个请求来显示一个元素:

 $scope.displayuser = function(id){
            var token = "xxxxxxx";
            userdisplay
                .send(token,id)
                .then(function(data){
                    console.log(data);
                    $scope.userbyorga = data.users;
                    console.log(data.users);
                    for(i = 0; i < data.users.length; i++){

                        var userid = data.users;


                       var userarray = JSON.stringify(userid);
                        localStorage.setItem("myid",userarray);
                    }
                })
                .then(function(){
                    var tabuser = JSON.parse(localStorage.getItem("myid"));
                    console.log(tabuser);
                    var urls = [];
                    $scope.numtickets = [];

                    for(i = 0; i < tabuser.length; i++){



                         urls.push({
                             url:JSON.stringify("https://cubber.zendesk.com/api/v2/users/"+tabuser[i].id+"/tickets/requested.json")

                         });


                        console.log(urls);

                        displayfilter
                            .user(token,tabuser[i].id)
                            .then(function(data){


                                $scope.numtickets.push(data.tickets.length);

                                console.log($scope.numtickets);





                            })
                    }

                })

        };

Ang 我正在我的控制器中显示这些名称的请求:

 $scope.displaycompany = function(){
            var token = "xxxxxxx";
            dropdown.send(token).then(function (data) {

                $scope.usertab = data.organizations;
                console.log($scope.usertab);


            });

        }

有两种方法可以做到这一点。首先是服务器端:有一个请求返回正确的数据集。

我将专注于客户端,因为这是一个客户端问题。我建议您创建一个包含用户和值的列表:

 var tabuser = JSON.parse(localStorage.getItem("myid"));
     console.log(tabuser);
     var urls = [];
     $scope.data = [];
     for(i = 0; i < tabuser.length; i++){
                  var currentUser = tabuser[i];// defining a variable in the scope of the callback function tabuser[i] just won't work as expected in the .then
                  displayfilter
                        .user(token,tabuser[i].id)
                        .then(function(data){
                            $scope.data.push({user:currentUser}, nbTickets:data.tickets.length});

                            console.log($scope.data);
                        })
                }

            })

现在你可以迭代整个事情了:

<ul ng-repeat="wrapper in data track by $index">{{wrapper.user.name}}<li ng-repeat="item in wrapper.nbTickets track by $index">{{item}}</li></ul>

但是我不确定是否需要第二次 ng-repeat。

如果这不符合您的需要,请检查 $q.all() 文档,您可以等待一堆承诺并将所有结果放在一起以合并它们并重新格式化数据以满足您的需要。