我创建了一个像这样的用户数组 -
var ref = new Firebase(FIREBASE_URL + '/users');
var users = $firebaseArray(ref);
我已经添加了对象,我想循环遍历此数组中的每个用户。我知道在使用ng-repeat的视图中这是可能的,但我需要在控制器中执行此操作。我试过了 -
angular.forEach(users, function(user) {
console.log(user);
})
但我没有得到任何结果。
答案 0 :(得分:29)
当时用户可能尚未加载,因此您需要等待它:
var ref = new Firebase(FIREBASE_URL + '/users');
var users = $firebaseArray(ref);
users.$loaded()
.then(function(){
angular.forEach(users, function(user) {
console.log(user);
})
});
答案 1 :(得分:2)
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);
})
});
答案 2 :(得分:0)
您可以使用内置的$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();
});