Firebase AngularFire嵌套集合

时间:2013-09-01 06:25:32

标签: angularjs firebase angularfire

我有

形式的数据
{
  "events" : {
    "-J2MoqWZnkcRCSugBfj3" : {
      "title" : "Some other event",
      "ratings" : {
        "-J2N4QYSk4y2BYznkGvk" : {
          "value" : 0
        },
        "-J2N3rfUPlPNP45RUZYx" : {
          "value" : 0
        }
      }
    },
    "-J2MpSSN8oldDqd-0jrr" : {
      "title" : "New event"
    }
  }
}

events集合有一个名为ratings的嵌套集合。我希望通过 angularFireCollection 管理这两个集合,但我不知道如何解决这个问题。

我的Angular控制器和模板定义为:

APP.controller('EventsCtrl', function ($scope, angularFireCollection) {

    $scope.events = angularFireCollection(<reference to events collection>);

});


<ul class="list-group">
  <li class="list-group-item" ng-controller="IndividualEventCtrl" ng-repeat="event in events">
    <div><strong class="lead">{{event.title}}</strong></div>
    <div ng-include="event.template"></div>
    <rating value="rate" max="max" readonly="isReadonly"></rating>
  </li>
</ul>

每个活动的控制器:

APP.controller('IndividualEventCtrl', function ($scope, FirebaseService, angularFireCollection) {
    $scope.max = 5;
    $scope.rate = 0;
    $scope.isReadonly = false;

    var ratingsRef = FirebaseService.events().child($scope.event.$id).child("ratings");
    $scope.rating = ratingsRef.push({value:0});

});

我创建ratingsRef并在集合中添加新评级的最后两行导致我的控制器进入某种无限循环。

我真的想知道管理嵌套集合的最佳方法是什么,以便我可以添加/更新这些集合中的元素。

0 个答案:

没有答案