3

フォームのデータがあります

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

イベント コレクションには、評価と呼ばれるネストされたコレクションがあります。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});

});

を作成して新しい評価をコレクションに追加する最後の 2 行ratingsRefにより、コントローラーがある種の無限ループに陥ります。

ネストされたコレクションを管理して、それらのコレクションの要素を追加/更新できるようにするための最良の方法を知りたいです。

4

0 に答える 0