gpt4 book ai didi

javascript - Angularfire:如何将一个对象插入 $firebaseArray 中的另一个对象?

转载 作者:行者123 更新时间:2023-11-30 16:40:51 24 4
gpt4 key购买 nike

我在 firebase 中有这个对象:

Groups
-id1
name: a

-id2
name: b

-id3
name: c

我这样使用“群组”:

var ref = new Firebase("https://app.firebaseio.com/Groups");
$scope.groups = $firebaseArray(ref)

$scope.groups.$add({
"name": "d"
}).then(function (ref)
{
console.log('Added group');
}, function (error)
{
console.error("Error:", error);
});

其中一些组包含项目。如何添加数组并向其中推送一些项目?如何处理数组已经存在的情况?

这行不通:

var group = Groups.$getRecord(id3)
if(!group.hasOwnProperty('items')){
group['items'] = []
}
group['items'].push({item: "an item"})

最佳答案

一般来说,avoid nested arraysflatten data在可能的情况下。

如果这些项目被多个用户异步更新,你就会有冲突和奇怪的行为,因为arrays in distributed data杀死小猫。

直接在要添加的项目上创建数组并改用推送 ID:

var ref = new Firebase("https://app.firebaseio.com/Groups/d/items");
$scope.items = $firebaseArray(ref)
$scope.items.$add({ $value: "an item" });

或者,如果我们要在 groups 上同步并且真的想每次都同步每个组的每个更改,那么这会更简单更好:

new Firebase("https://app.firebaseio.com/Groups/d/items").push("an item");

关于javascript - Angularfire:如何将一个对象插入 $firebaseArray 中的另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com