【问题标题】:AngularFire how to remove multiple items from array?AngularFire如何从数组中删除多个项目?
【发布时间】:2018-04-15 05:11:36
【问题描述】:

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

【问题讨论】:

    标签: angularjs firebase angularfire


    【解决方案1】:

    如果$firebaseArray 中没有可以满足您要求的方法,您可以使用数组的$ref() 执行 Firebase SDK 样式的调用。数组内容将与您通过 ref 所做的更改同步。

    要删除所有元素,请在 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);
    }
    

    两个函数都返回承诺。

    【讨论】:

      【解决方案2】:

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

      $firebaseUtils.doRemove(firebaseArray.$ref());
      

      【讨论】:

        猜你喜欢
        • 2014-04-25
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-07
        相关资源
        最近更新 更多