var DiscussionView = ...; //базовое представление для управления секциями
var DiscussionSectionView = ...; //список комментариев + родительский комментарий
var DiscussionCommentView = ...; //комментарий
<script type="text/template" id="section-template">
<div class="primary"></div>
<div class="items"></div>
</script>
<script type="text/template" id="comment-template">
<div class="comment">{{ text }}</div>
</script>
var Item = Backbone.Model.extend({
defaults: {
//..
level: 0
},
//...
initialize: function(){
//..
if(this.get('parent') !== null)
this.set('level', this.get('parent').get('level') + 1);
}
});
var ItemsCollection = Backbone.Collection.extend({
//...
getPlainList: function(list = []){
this.each(function(model){
list.push(model);
this.getPlainList.call(model.get('items'), list);
}, this);
return list;
}
});
github.com/WebReflection/JSONH