AngularFire 如何从数组中删除多个项目?
AngularFire how to remove multiple items from array?
我正在使用 Firebase 和 AngularFire 库。我正在寻找一种方法来从 $firebaseArray 对象中删除所有项目或一系列项目。我在 documentation 中没有看到直接的方法。除了循环和一项一项地删除项目之外,还有什么我没有想到的方法吗?请告诉我这不是唯一的方法!!
如果 $firebaseArray
中没有满足您要求的方法,您可以使用数组的 $ref()
执行 Firebase SDK-style 调用。数组内容将与您通过 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);
}
两个函数 return 承诺。
我无法让 firebaseArray.$ref().remove()
工作,因为 child 订购时 object 上不存在 remove()
函数,但执行以下操作虽然似乎有效:
$firebaseUtils.doRemove(firebaseArray.$ref());
我正在使用 Firebase 和 AngularFire 库。我正在寻找一种方法来从 $firebaseArray 对象中删除所有项目或一系列项目。我在 documentation 中没有看到直接的方法。除了循环和一项一项地删除项目之外,还有什么我没有想到的方法吗?请告诉我这不是唯一的方法!!
如果 $firebaseArray
中没有满足您要求的方法,您可以使用数组的 $ref()
执行 Firebase SDK-style 调用。数组内容将与您通过 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);
}
两个函数 return 承诺。
我无法让 firebaseArray.$ref().remove()
工作,因为 child 订购时 object 上不存在 remove()
函数,但执行以下操作虽然似乎有效:
$firebaseUtils.doRemove(firebaseArray.$ref());