如何遍历 $firebaseArray
How to loop through $firebaseArray
我创建了一个这样的用户数组 -
var ref = new Firebase(FIREBASE_URL + '/users');
var users = $firebaseArray(ref);
我已经向其中添加了对象,我想遍历此数组中的每个用户。我知道这在使用 ng-repeat 的视图中是可能的,但我需要在控制器中进行。我试过了 -
angular.forEach(users, function(user) {
console.log(user);
})
但是我没有得到任何结果。
届时用户可能尚未加载,因此您需要等待:
var ref = new Firebase(FIREBASE_URL + '/users');
var users = $firebaseArray(ref);
users.$loaded()
.then(function(){
angular.forEach(users, function(user) {
console.log(user);
})
});
您可以使用内置的 $list
属性,
例如下面的函数计算用户数,
app.factory("Users", function($firebaseArray) {
return $firebaseArray.$extend({
getUsers: function() {
var user_count = 0;
angular.forEach(this.$list, function(user) {
user_count += 1;
console.log(user);
});
return user_count;
}
});
})
然后使用它,
var userList = new Users(ref);
userList.$loaded().then(function() {
userList.getUsers();
});
var fbref = new Firebase(FIREBASE_URL + '/customers');
customers = $firebaseArray(fbref);
customers.$loaded()
.then(function(data){
angular.forEach(data, function(value, key) {
console.log('key='+key+', value='+value);
})
});
我创建了一个这样的用户数组 -
var ref = new Firebase(FIREBASE_URL + '/users');
var users = $firebaseArray(ref);
我已经向其中添加了对象,我想遍历此数组中的每个用户。我知道这在使用 ng-repeat 的视图中是可能的,但我需要在控制器中进行。我试过了 -
angular.forEach(users, function(user) {
console.log(user);
})
但是我没有得到任何结果。
届时用户可能尚未加载,因此您需要等待:
var ref = new Firebase(FIREBASE_URL + '/users');
var users = $firebaseArray(ref);
users.$loaded()
.then(function(){
angular.forEach(users, function(user) {
console.log(user);
})
});
您可以使用内置的 $list
属性,
例如下面的函数计算用户数,
app.factory("Users", function($firebaseArray) {
return $firebaseArray.$extend({
getUsers: function() {
var user_count = 0;
angular.forEach(this.$list, function(user) {
user_count += 1;
console.log(user);
});
return user_count;
}
});
})
然后使用它,
var userList = new Users(ref);
userList.$loaded().then(function() {
userList.getUsers();
});
var fbref = new Firebase(FIREBASE_URL + '/customers');
customers = $firebaseArray(fbref);
customers.$loaded()
.then(function(data){
angular.forEach(data, function(value, key) {
console.log('key='+key+', value='+value);
})
});