2017-01-12 40 views
1

我正在使用Firebase和AngularFire库。我正在寻找一种方法来从$ firebaseArray对象中删除所有项目或一系列项目。我在documentation中看不到一种简单的方法。除了循环和逐个删除项目之外,有没有其他方法我不想考虑?请告诉我,这不是唯一的方法!AngularFire如何从数组中删除多个项目?

回答

1

如果没有在$firebaseArray的方法,你想要什么,你可以使用数组的$ref()进行火力地堡SDK式电话。数组内容将与您通过ref进行的更改同步。

要删除所有的元件,对裁判本身调用remove

function removeAll(firebaseArray) { 
    return firebaseArray.$ref().remove(); 
} 

要删除的范围内,执行update,其中待去除的密钥被设置为null

function removeRange(firebaseArray, start, end) { 
    var keys = {}; 
    if (end === undefined) { 
    end = firebaseArray.length; 
    } 
    for (var i = start; i < end; ++i) { 
    keys[firebaseArray.$keyAt(i)] = null; 
    } 
    return firebaseArray.$ref().update(keys); 
} 

这两个函数都返回promise。