Angular 在 ng-repeat 中加载额外的数据
Angular load additional data in ng-repeat
我有一个 ng-repeat,它有一堆 id 并在它们上面循环。然后我想从外部源加载数据。所以假设我有一个数组
[1,2,3,4,5]
我有一个 ng-repeat 循环然后显示
<div>1</div>
<div>2</div>
...
我想从外部源 (firebase) 加载更多详细信息以获取用户个人资料的详细信息,这样我就可以显示属于另一个部分的名字和姓氏,然后通过调用
http://firebase/users/user_1
http://firebase/users/user_2
...
然后以某种方式将它映射到 dom 或范围,这样我就可以使用正常的 angular 东西打印它。
知道如何做到最好吗?
我要做的第一件事是使该数组在加载额外数据之前和之后都可用。我假设您的完整用户对象具有字段 id
$scope.users = [1,2,3,4].map(function(id) {
return {id: id};
});
这应该让你像这样使用 ng-repeat
<div ng-repeat="user in users">
{{user.id}}
</div>
现在,在您的控制器中加载用户详细信息。我假设您有 User
$resource
或类似服务
var userPromises = $scope.users.map(function(user) {
return User.get({id: 'user_' + user.id}).$promise;
});
$q.all(userPromises).then(function(users) {
$scope.users = users;
});
然后只需更改您的模板以使用额外的详细信息
<div ng-repeat="user in users">
{{user.id}}
<dl ng-if="user.$resolved">
<dt>First name</dt>
<dd>{{ user.firstName }}</dd>
<dt>Last name</dt>
<dd>{{ user.lastName }}</dt>
</dl>
</div>
我有一个 ng-repeat,它有一堆 id 并在它们上面循环。然后我想从外部源加载数据。所以假设我有一个数组
[1,2,3,4,5]
我有一个 ng-repeat 循环然后显示
<div>1</div>
<div>2</div>
...
我想从外部源 (firebase) 加载更多详细信息以获取用户个人资料的详细信息,这样我就可以显示属于另一个部分的名字和姓氏,然后通过调用
http://firebase/users/user_1
http://firebase/users/user_2
...
然后以某种方式将它映射到 dom 或范围,这样我就可以使用正常的 angular 东西打印它。
知道如何做到最好吗?
我要做的第一件事是使该数组在加载额外数据之前和之后都可用。我假设您的完整用户对象具有字段 id
$scope.users = [1,2,3,4].map(function(id) {
return {id: id};
});
这应该让你像这样使用 ng-repeat
<div ng-repeat="user in users">
{{user.id}}
</div>
现在,在您的控制器中加载用户详细信息。我假设您有 User
$resource
或类似服务
var userPromises = $scope.users.map(function(user) {
return User.get({id: 'user_' + user.id}).$promise;
});
$q.all(userPromises).then(function(users) {
$scope.users = users;
});
然后只需更改您的模板以使用额外的详细信息
<div ng-repeat="user in users">
{{user.id}}
<dl ng-if="user.$resolved">
<dt>First name</dt>
<dd>{{ user.firstName }}</dd>
<dt>Last name</dt>
<dd>{{ user.lastName }}</dt>
</dl>
</div>