Backbone Blogger data structure

by bowheart

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone-relational/0.9.0/backbone-relational.min.js"></script>
<div></div>

JavaScript

var BlogPost = Backbone.Model.extend({
    defaults: {
        title: "New Blog Post",
        timestamp: Date.now()
    }
});

var BlogPosts = Backbone.Collection.extend({
    comparator: "timestamp",
    //model: "BlogPost"
});

var Blogger = Backbone.Model.extend({
    defaults: {
        BlogPosts: new BlogPosts()
    }
});

var Bloggers = Backbone.Collection.extend({
    //model: Blogger
});

var blogPost1 = new BlogPost({title: "The dog died"});
var blogPost2 = new BlogPost({title: "Raining again"});

var blogPosts = new BlogPosts([blogPost1, blogPost2]);

var blogger1 = new Blogger({BlogPosts: blogPosts});
var blogger2 = new Blogger();

var bloggers = new Bloggers([blogger1, blogger2]);


var bloggers2 = new Bloggers();
bloggers2.reset(bloggers.toJSON());

console.log(_.flatten(_.map(bloggers2.pluck("BlogPosts"), function(item) { return item.pluck("title"); })));