AngularFire如何从数组中删除多个项目?

时间:2017-01-12 22:53:54

标签: angularjs firebase angularfire

我正在使用Firebase和AngularFire库。我正在寻找一种从$ firebaseArray对象中删除所有项目或一系列项目的方法。我没有在documentation中看到一种直截了当的方法。除了循环和逐个删除项目之外,我有什么办法吗?请告诉我这不是唯一的方式!!

2 个答案:

答案 0 :(得分:1)

如果$firebaseArray中没有符合您需要的方法,您可以使用数组的$ref()来执行Firebase SDK风格的调用。数组内容将与您通过引用所做的更改同步。

要删除所有元素,请在引用本身上调用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);
}

这两个函数都会返回promises。

答案 1 :(得分:0)

我无法让False工作,因为当孩子订购时,对象上不存在firebaseArray.$ref().remove()函数,但执行以下操作似乎有效:

remove()