Javascript 在AngularFire中迭代项目列表时,如何获取每个项目的ID?
控制器:Javascript 在AngularFire中迭代项目列表时,如何获取每个项目的ID?,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,控制器: ... $scope.items = ItemService; // This is injected correctly, no problem here. ... HTML: 我的问题是。。。如果我使用.add Firebase的.push添加项目,我不知道如何获取自动生成的ID 有什么想法吗?结果表明,您可以迭代键、值,这就实现了以下功能: HTML: 除了迭代键/值外,$firebase中的每条记录(假设它不是基元值)都会将键作为$id附加: 这个问题的答案如下: 答案是
...
$scope.items = ItemService; // This is injected correctly, no problem here.
...
HTML:
我的问题是。。。如果我使用.add Firebase的.push添加项目,我不知道如何获取自动生成的ID
有什么想法吗?结果表明,您可以迭代键、值,这就实现了以下功能: HTML:
除了迭代键/值外,$firebase中的每条记录(假设它不是基元值)都会将键作为$id附加:
这个问题的答案如下: 答案是: angularFire$add方法返回一个承诺,解析后将包含对新推送值的Firebase引用。使用该值,您可以获得UID
$scope.tests.$add({
...your object....
}).then(function(ref) {
//this is your id
var id = ref.name();
});
这就是我希望存在的答案——尽管我已经尝试过了,但是我没有看到$id属性的任何结果:即使我只是检索对象,这仍然有效吗?也就是说,此时不创建新对象,只读取现有对象不,这只是在添加新对象时从服务器读取响应。Firebase使用新列表项的id进行响应。
<div ng-repeat="(id, item) in items">
<a ng-href="#/items/{{ id }}">{{ item.name }}</a>
</div>
<div ng-repeat="item in items">
<a ng-href="#/items/{{ item.$id }}">{{ item.name }}</a>
</div>
$scope.tests.$add({
...your object....
}).then(function(ref) {
//this is your id
var id = ref.name();
});