使用 angularFire 隐式同步在 ng-repeat 中访问 Firebase 唯一 ID

Posted

技术标签:

【中文标题】使用 angularFire 隐式同步在 ng-repeat 中访问 Firebase 唯一 ID【英文标题】:Access Firebase unique ids within ng-repeat using angularFire implicit sync 【发布时间】:2013-10-18 22:38:16 【问题描述】:

我有一个使用 angularFire 隐式数据同步的 Firebase 对象列表,我想使用 ng-repeat 呈现它们的唯一 ID(用于 url)以及其他数据属性。我可以让angularFire 以我可以访问ng-repeat 中的对象ID 的方式返回,就像angularFireCollection 的成员拥有$id 属性一样吗?如果不是,那么实现此目的的正确方法是什么?假设代码(不起作用):

控制器:

myApp.controller('ItemListCtrl', ['$scope', 'angularFire',
  function ItemListCtrl($scope, angularFire) 
    var ref = new Firebase(firebaseUrl);
    angularFire(ref, $scope, 'items');
  
]);

查看:

<div ng-repeat="item in items" >
  <a href="" ng-href="#/items/item.name()">item.text</a>
</div>

【问题讨论】:

【参考方案1】:

我想你只需要:

<div ng-repeat="(name, item) in items">
  <a href="" ng-href="#/items/name">item.text</a>
</div>

angularFire 对象的行为就像一个普通的 javascript 对象。

【讨论】:

啊啊啊啊啊啊啊!在我找到这个答案之前,我一直在为此苦苦挣扎。谢谢! 他们需要更好地记录这一点-_-【参考方案2】:

要获取通过 angularfire $add 方法创建的唯一 ID,您可以使用 $id 属性:

<div ng-repeat="item in items" >
  <a href="" ng-href="#/items/item.$id">item.text</a>
</div>

【讨论】:

这似乎不再起作用了。 bennlich 的回答确实有效。 对我来说反之亦然,本利希的方法不起作用,这个方法起作用。 :P 对我来说反之亦然:) .$id 成功了!特别是在firebaseArrays :)

以上是关于使用 angularFire 隐式同步在 ng-repeat 中访问 Firebase 唯一 ID的主要内容,如果未能解决你的问题,请参考以下文章

在 AngularFire2 v4 中使用“firebase”

什么是 OpenMP 中的“隐式同步”

在 Firestore 中使用 AngularFire 列出文档的子集合

Vulkan:带有隐式布局转换的附件同步

如何使用 AngularFire 从 FireBase 存储中获取文件列表

如何在单元测试中模拟 AngularFire 2 服务?