вот мой isssue, у меня два разных цикла, и каждый из этих циклов из разных HTTP-запросов. Вот экран того, что у меня есть:
И то, что я хочу, это то, что, рев "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);
});
}
Существует два способа сделать это. Сначала серверная сторона: один запрос возвращает правильные наборы данных.
Я сосредоточусь на стороне клиента, так как это вопрос на стороне клиента. Я предлагаю вам создать один список, который обернул бы пользователя и значение:
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()
обещаний и получить весь результат вместе, чтобы объединить их и переформатировать данные в соответствии с вашими потребностями.