我有表格的数据
{
"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
和添加新评级的集合导致我的控制器进入某种无限循环。
我真的很想知道管理嵌套集合的最佳方法是什么,以便我可以添加/更新这些集合中的元素。