3

我有表格的数据

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

events 集合有一个称为 rating 的嵌套集合。我希望通过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和添加新评级的集合导致我的控制器进入某种无限循环。

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

4

0 回答 0