AngularFire / Firebase - 如何删除超过一级深度的密钥?

AngularFire / Firebase - How Do You Delete Key That is More Than One Level Deep?

我有一个像这样初始化的同步对象:

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() 的嵌套键?

无法通过$remove()函数钻取多层。我最终使用普通的 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 Firebase class 对象,然后将 运行 remove() 方法链接到该对象(注意这是remove() 方法而不是 $remove() 方法)。