在此之前,我尝试过使用angularFire
和angularFireCollection
,但总是缺少我的方法。
假设我有一个类似于下面的节点。
您可以看到parent
single title
和multiple childs
{
"parent": {
"title": "hello world",
"childs": {
"childA": "This is child A",
"childB": "This is child B"
}
}
}
我想做什么
childs
,以便在发生更改时不会重新检索parent.title
当我使用angularFire
时,我无法访问2.
当我使用angulareFireCollection
时,我无法触及1.
和3.
我真的需要一些帮助。
答案 0 :(得分:1)
这是我想到的几个想法。希望他们能帮忙。
手动查询标题并对childs
使用angularFireCollection
使用您当前的结构,最简单的方法是手动设置标题并使用angularFireCollection来监视父/子/:
var fb = new Firebase(URL);
// manually update the title
fb.child('parent/title').on('value', function(snap) {
$scope.title = snap.val();
// this isn't in angular's apply scope, so force an apply
$scope.$apply();
});
// track changes to childs
$scope.childs = angularFireCollection( fb.child('parent/childs') );
拆分数据路径:
通过拆分数据以便父项和子项位于不同的路径中,您可以更轻松地一起使用angularFire和angularFireCollection:
/parents/$parent_id/title
/childs/$parent_id/childA/...
/childs/$parent_id/childB/...
使用angularFire查询父数据,使用angularFireCollection查询子项:
var fb = new Firebase(URL);
angularFire( fb.child('parents/'+parentId), $scope, 'parent' );
$scope.children = angularFireCollection( fb.child('childs/'+parentId );