прикрепить два нг-повторить

0

вот мой isssue, у меня два разных цикла, и каждый из этих циклов из разных HTTP-запросов. Вот экран того, что у меня есть:

Изображение 174551

И то, что я хочу, это то, что, рев "claire pagniez", я хочу "1", рев "Мишель Полнареф", я хочу 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);


            });

        }
Теги:
ng-repeat

1 ответ

1
Лучший ответ

Существует два способа сделать это. Сначала серверная сторона: один запрос возвращает правильные наборы данных.

Я сосредоточусь на стороне клиента, так как это вопрос на стороне клиента. Я предлагаю вам создать один список, который обернул бы пользователя и значение:

 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>

Однако я не уверен, требуется ли 2-й ng-repeat.

Если это не соответствует вашей потребности, проверьте документацию $q.all() которой вы можете дождаться $q.all() обещаний и получить весь результат вместе, чтобы объединить их и переформатировать данные в соответствии с вашими потребностями.

  • 0
    Я еще не пробовал, но спасибо, это отличный ответ, который вы мне дали!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню