How to get through $ firebaseArray

I created such an array of such users -

var ref = new Firebase(FIREBASE_URL + '/users'); var users = $firebaseArray(ref); 

I added objects to this, and I want to skip each of the users in this array. I know this is possible in the view using ng-repeat, but I need to do this in the controller. I tried -

 angular.forEach(users, function(user) { console.log(user); }) 

But I do not get from this result.

+8
angularjs firebase angularfire
source share
3 answers

Users are probably not loading by then, so you will need to wait:

 var ref = new Firebase(FIREBASE_URL + '/users'); var users = $firebaseArray(ref); users.$loaded() .then(function(){ angular.forEach(users, function(user) { console.log(user); }) }); 

Here's the docs on it: https://www.firebase.com/docs/web/libraries/angular/guide/intro-to-angularfire.html#section-async-intro

+29
source share
 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
source share

You can use the built-in attribute $list ,
for example, the function below counts users,

 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; } }); }) 

and then use it,

 var userList = new Users(ref); userList.$loaded().then(function() { userList.getUsers(); }); 
0
source share

All Articles