2016-08-23 26 views
0

我有一个像这样的初始化的同步对象:AngularFire/Firebase - 如何删除超过一层的密钥?

var sync = $firebase(ref); 
var syncObject = sync.$asObject(); 
syncObject.$bindTo($scope, 'data'); 

的同步对象具有以下结构:

{ 
    levelone: { 
     leveltwo: { 
      valueone: 1 
      valuetwo: 2 
     } 
    } 
} 

我想删除与$remove()的一个值,但我使用此方法无法删除除整个对象以外的任何内容。

下面将删除整个对象:

syncObject.$remove('levelone.leveltwo.valueone'); 

我不想用$save()覆盖整个同步对象。

无论如何删除与$remove()嵌套密钥?

回答

0

无法使用$remove()函数钻取多个图层。我结束了使用vanilla Firebase JS库方法来删除。

var ref = new Firebase(myFirebaseURL); 
// The child() method (from the vanilla JS library) allows you to target keys 
// more than one level deep 
ref.child('levelone/leveltwo/valueone').remove(); 
var sync = $firebase(ref); 

可以链的child()函数关原JS火力地堡类对象中,然后运行该remove()方法关闭的那个(注意,这是remove()方法而不是$remove()方法)。