如何双向绑定父节点并使用angularFire查找它的子主数据

时间:2013-12-25 20:08:03

标签: angularjs firebase angularfire

数据

{
 folders: {
  id123: {
   authorizedUsers: {
    u123: true,
    u456: true
   }
  }
 },
 users: {
  u123: { name: 'David' },
  u456: { name: 'Ali' }
 }
}

根据以上数据,我可以使用

$folder = $firebase(fbRef.child('folders').child('/id123'))保持数据同步。

由于新的angularFire($ firebase)只接受1个参数(ref),如何使用回调来获取authorizedUsers key并检索users节点中的相关主数据?

下面是我没有$ firebase使用的方法,但不知道如何将纯firebase api与$ firebase一起使用

$scope.authorizedUsers = [];
fbRef.child('folders/').child($routeParams.folderID).on('child_added', function(ss) {
  fbRef.child('users/').child(childSnapshot.name()).once('value',function(user) {
    $timeout(function() {
      $scope.authorizedUsers.push(user.val());
      console.log($scope.authorizedUsers);
    });
  });
});

1 个答案:

答案 0 :(得分:1)

您可以使用。$ on('loaded')事件来查找数据加载的时间,然后创建新的$ firebase引用以获取其他记录。例如:

var folder = $firebase(fbRef.child('folder').child('id123'));
folder.$on('loaded', function(data) {
  var users = data['authorizedUsers'];
  for (var user in users) {
    $firebase(fbRef.child('users').child(user)).$on('loaded', function(userData) {
      $scope.authorizedUsers.push(userData);
    });
  }
});