Javascript 如何管理角度中的循环?
我是一个有角度的新手,我试图循环遍历数组中的每个对象,为新数组中的每个对象创建一个用户行,请参见下面的场景 在下面的示例中,我只想获得_user_id来为每个用户创建新行Javascript 如何管理角度中的循环?,javascript,arrays,angularjs,for-loop,Javascript,Arrays,Angularjs,For Loop,我是一个有角度的新手,我试图循环遍历数组中的每个对象,为新数组中的每个对象创建一个用户行,请参见下面的场景 在下面的示例中,我只想获得_user_id来为每个用户创建新行 [{id: 1, to_user_id: 5, from_user_id: 4}, {id: 2, to_user_id: 6, from_user_id: 4}] 下面是我的服务,我知道我必须将它包装在for循环中,并将对象推到一个新数组中,我只是不知道如何用角度表示它 UserService.GetUserById(to
[{id: 1, to_user_id: 5, from_user_id: 4},
{id: 2, to_user_id: 6, from_user_id: 4}]
下面是我的服务,我知道我必须将它包装在for循环中,并将对象推到一个新数组中,我只是不知道如何用角度表示它
UserService.GetUserById(to_user_id)
.success(function (data) {
}).
error(function(error, status) {
alert(status);
console.log(error);
});
});
使用anuglar foreach loog示例:
$scope.newvalues = [];
angular.forEach(values, function(value) {
$scope.newvalues.push(values.to_user_id)
};
根据需要多次运行服务。使用array.push方法将新用户推送到阵列中。然后在html中使用ng repeat来显示它们,就像使用IIFE闭包一样
$scope.users = [];
for (var =i; i<maxValues; i++) {
(function call(i)
UserService.GetUserById(to_user_id)
.success(function(data) {
$scope.users.push(data);
}))(i);
}
虽然在循环中运行对服务器的多个请求不是一个好主意,但是您可以通过使用承诺来控制所有请求的状态,从而使其更加方便 考虑以下示例,说明如何使用从服务调用检索的附加to_user属性来扩充原始用户数组:
$scope.users = [
{id: 1, to_user_id: 5, from_user_id: 4},
{id: 2, to_user_id: 6, from_user_id: 4}
];
$q.all($scope.users.map(function(user) {
return UserService.GetUserById(user.to_user_id).success(function(data) {
user.to_user = data;
});
}))
.then(function() {
// all users are resolved successfully
})
.catch(function (error, status) {
// at least one request failed
alert(status);
console.log(error);
});
演示:您返回的数据是一个数组,因此您可以在其上循环:
$scope.users = [];
myService.getData().then(function(data){
angular.forEach(data, function(user){
getUser(user.to_user_id);
});
});
function getUser(id) {
UserService.GetUserById(id)
.success(function (data) {
$scope.users.push(data);
}).error(function(error, status) {
alert(status);
console.log(error);
});
});
}
然后迭代您范围内的用户:
<ul>
<li ng-repeat="user in users">{{ user.name }}</li>
</ul>
您是否通过多次调用GetUserById来填充数组?是的,这正是我试图在@svaro中执行的操作,您希望在html中显示它吗?您应该获得所有用户,因为如果您不知道您的数据库保存了多少用户,您就不知道应该迭代数据库多少次loop@svarog我可以控制要循环通过的数组中返回的数量。。。所以基本上我会在新的数组中重复。。后端开发人员不希望在第一个数组中返回to_用户名。。我必须通过idyeah将每个用户的行都发送到_用户的行的原因我得到了必须运行服务x次的部分,我只是不知道如何将其包装在循环语句中
<ul>
<li ng-repeat="user in users">{{ user.name }}</li>
</ul>