在AngularFire中迭代项目列表时,如何获取每个项目的ID

When iterating through a list of items in AngularFire, how do I get the ID of each item?

本文关键字:项目 获取 ID 迭代 AngularFire 列表 何获取      更新时间:2023-09-26

控制器:

...
$scope.items = ItemService; // This is injected correctly, no problem here.
...

HTML:

<div ng-repeat="item in items">
  <a ng-href="#/items/{{ item.id }}">{{ item.name }}</a>
</div>

我的问题是…如果我使用.$add()(Firebase的.push())添加项目,我不知道如何获得自动生成的ID…

有什么想法吗?

事实证明,您可以在(key, value)上迭代,这就完成了任务:

HTML:

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

除了对键/值进行迭代外,$firebase中的每个记录(假设它不是基元值)都会将键附加为$id:

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

这个问题的答案如下:https://stackoverflow.com/a/21996544/975669

答案:

angularFire$add方法返回一个promise,解析后将包含对新推送值的Firebase引用。使用该值,您可以获得UID。

$scope.tests.$add({
  ...your object....
}).then(function(ref) { 
    //this is your id
    var id = ref.name(); 
  });