从$ firebaseArray获取引用以创建新的引用对象

时间:2016-05-01 18:25:02

标签: firebase angularfire

this question相关,我需要能够从集合中获取元素作为Firebase引用,即给定$firebaseArray我需要$firebaseObject指向其中一个元素。与那个例子不同,我不能只是硬编码数组的路径并从那里带一个孩子,因为数组的位置会有所不同。我无法使用$firebaseArray.$getRecord()ng-repeat后面跟array.$save()提供的对象,因为我可能需要对此元素执行push()

所以我决定采用这种可重复使用的方法:

在服务中:

function selectElement(array, element) {
  var obj = $firebaseObject(array.$ref().child(element.$id));
  return obj;
}

在控制器中:

function onItemClicked(e) {
  vm.selected = dataservice.selectElement(vm.observations, e);
}

在模板中:

<div class="list-item" ng-repeat="o in vm.observations" ng-click="vm.onItemClicked(o)">

selectElement的第一行产生错误:array.$ref(...).child is not a function at Object.selectElement

此处array包含您期望的所有属性,但是日志记录array.$ref()会显示此混淆对象:

Y {k: Ji, path: P, n: Ce, pc: true}

这就是从创建数组时的样子。这里发生了什么以及如何使用此参考?还有另一种方法可以从阵列中获取有效的Firebase对象吗?

0 个答案:

没有答案