2016-04-22 102 views
0

这里是我的isssue,我有两个不同的循环,并且这些循环中的每一个都来自不同的http请求。这里的什么我已经得到了屏幕:附加两个ng-重复自己

enter image description here

,我想什么,就是,贝娄“克莱尔pagniez”我想“1”,波纹管“米歇尔Polnaref”我想3,波纹管“玛蒂尔德齐默“我想要”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请求我在我的控制器中显示tho se名称:

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

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


      }); 

     } 

回答

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> 

但是我不知道如果第二NG-重复是必要的。

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

+0

我还没试过,但是谢谢你给了我一个很好的答案! – xenurs