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

时间:2014-04-12 05:42:09

标签: javascript angularjs firebase angularfire

控制器:

...

$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 ...

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

结果证明你可以迭代(key, value),这就是诀窍:

HTML:

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

答案 1 :(得分:1)

除了遍历键/值之外,$ firebase中的每条记录(假设它不是原始值)都会将键附加为$id

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

答案 2 :(得分:0)

这个问题在这里得到解答: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(); 
  });