$firebaseArray 子记录在其子节点上没有 ID
$firebaseArray child records don't have IDs on their child nodes
我正在制作 angular-fire 待办事项列表的修改版本。本次修改包括制作子列表和子列表的子列表。
我的问题是,当我添加第一级子列表时,子对象没有我需要添加下一级子列表的 $id。
它们似乎没有常见的 firebase 属性,只有 "title" 和 "completed" 状态。
我不明白为什么我的 ng-repeat 没有给我更多信息,尤其是为什么它适用于顶级对象但不适用于更底层的对象。
原加:
$scope.addTodo = function(theTodo) {
var newTodo = theTodo.trim();
if (!newTodo.length) {
return;
}
$scope.todos.$add({
title: newTodo,
completed: false
});
$scope.newTodo = '';
$scope.subtodo = false;
};
子列表添加:
$scope.addSubList = function(parent, toDo) {
console.log(parent, toDo)
var subRef = newRef.child(parent.$id)
var newArray = $firebaseArray(subRef)
var newTodo = toDo.trim();
if (!newTodo.length) {
return;
}
newArray.$add({title: newTodo,
completed: false
})
$scope.sublistExists = true;
$scope.newTodo = '';
}
$firebaseArray
对象仅在您初始化它的位置下的第一级子对象上发挥其魔力。所以你看到的行为是 "working as designed".
如果你想处理多级集合,你有两个选择(据我所知):
- 自己处理较低级别
- 将所有列表存储在一个级别上,然后通过在每个列表中保留
parentId
手动构建多级别
我建议使用选项 2,因为它更符合 Firebase 的建议以防止不必要的嵌套。参见 https://www.firebase.com/docs/web/guide/structuring-data.html
我正在制作 angular-fire 待办事项列表的修改版本。本次修改包括制作子列表和子列表的子列表。
我的问题是,当我添加第一级子列表时,子对象没有我需要添加下一级子列表的 $id。
它们似乎没有常见的 firebase 属性,只有 "title" 和 "completed" 状态。
我不明白为什么我的 ng-repeat 没有给我更多信息,尤其是为什么它适用于顶级对象但不适用于更底层的对象。
原加:
$scope.addTodo = function(theTodo) {
var newTodo = theTodo.trim();
if (!newTodo.length) {
return;
}
$scope.todos.$add({
title: newTodo,
completed: false
});
$scope.newTodo = '';
$scope.subtodo = false;
};
子列表添加:
$scope.addSubList = function(parent, toDo) {
console.log(parent, toDo)
var subRef = newRef.child(parent.$id)
var newArray = $firebaseArray(subRef)
var newTodo = toDo.trim();
if (!newTodo.length) {
return;
}
newArray.$add({title: newTodo,
completed: false
})
$scope.sublistExists = true;
$scope.newTodo = '';
}
$firebaseArray
对象仅在您初始化它的位置下的第一级子对象上发挥其魔力。所以你看到的行为是 "working as designed".
如果你想处理多级集合,你有两个选择(据我所知):
- 自己处理较低级别
- 将所有列表存储在一个级别上,然后通过在每个列表中保留
parentId
手动构建多级别
我建议使用选项 2,因为它更符合 Firebase 的建议以防止不必要的嵌套。参见 https://www.firebase.com/docs/web/guide/structuring-data.html