Angularjs 从firebase数组到单个firebase对象的RESTful路由

Angularjs 从firebase数组到单个firebase对象的RESTful路由,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我对如何使用angularfire使用angularfire对angular/firebase执行非常非常琐碎的模式感到困惑 想象你有一个小小的老博客。你有一些$scope.posts,你可以重复它们。现在,您希望能够单击一篇文章并将其发送到该文章位于“/posts/:id”的页面。由于$firebaseArray元素不包含其$id,如何将单个帖子的唯一id传递到url和postsCtrl 更新 我想出的解决办法是,每当我保存一篇新文章时,我都可以保存一个名为“key”的属性,然后像在其他框

我对如何使用angularfire使用angularfire对angular/firebase执行非常非常琐碎的模式感到困惑

想象你有一个小小的老博客。你有一些$scope.posts,你可以重复它们。现在,您希望能够单击一篇文章并将其发送到该文章位于“/posts/:id”的页面。由于$firebaseArray元素不包含其$id,如何将单个帖子的唯一id传递到url和postsCtrl


更新

我想出的解决办法是,每当我保存一篇新文章时,我都可以保存一个名为“key”的属性,然后像在其他框架中通常使用“id”属性那样使用它


$firebaseArray(postsRef)。$add($scope.post)。然后(函数(ref){
ref.update({key:ref.key()});
});

然而,这种黑客行为不能解决这种简单、琐碎、传统的模式


谢谢你的帮助。

你的直觉是对的,那不是答案。使用angular的内置(键、值)选项进行ng repeat:

<div ng-repeat="(id, post) in posts">
    <a ng-href="/posts/{{post.id}}">{{post.title}}</a>
</div>


关于如何将AngularFire与ng1结合使用的其他参考资料可以在这里看到

此模式为您提供索引,而不是每个帖子的键。我可能可以使用它来创建一个ng click函数,该函数接受索引,从$firebaseArray()中找到键,然后用它来更改$location。或者我可以使用parse。