フォームのデータがあります
{
"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
により、コントローラーがある種の無限ループに陥ります。
ネストされたコレクションを管理して、それらのコレクションの要素を追加/更新できるようにするための最良の方法を知りたいです。