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