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"); })));