【问题标题】:Access Firebase unique ids within ng-repeat using angularFire implicit sync使用 angularFire 隐式同步在 ng-repeat 中访问 Firebase 唯一 ID
【发布时间】: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>

【问题讨论】:

    标签: angularjs firebase angularfire


    【解决方案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 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2013-05-19
    • 2014-10-15
    • 2015-03-16
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多