JSFiddle - React, Tailwind, and code Playground
by jgarrido
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script>
JavaScript
var data = {
"title": "Seinfeld",
"seasons": [
{
"seasonNumber": 4,
"episodes": [
{
"episodeTitle": "No Soup For You",
"episodeNumber": 3,
"description": "THe local soup guy doesn't give Seinfield soup"
},
{
"episodeTitle": "Revenge on the Soup Nazi",
"episodeNumber": 4,
"description": "Seinfield gets revenge on the Soup Nazi"
}
]
},
{
"seasonNumber": 5,
"episodes": [
{
"episodeTitle": "Ellen Gets a Tat",
"episodeNumber": 4,
"description": "Ellen gets a new tattoo, everyone goes ballistic"
}
]
},
{
"seasonNumber": "other",
"episodes": [
{
"episodeTitle": "Revenge on the Soup Nazi",
"episodeNumber": 4,
"description": "Seinfield gets revenge on the Soup Nazi"
}
]
}
]
};
EpisodeModel = Backbone.Model.extend({
parse: function(data) {
console.info("EpisodeModel.parse()", data, this);
return data;
}
});
EpisodeCollection = Backbone.Collection.extend({
model: EpisodeModel,
initialize: function(data) { this.parse(data) },
parse: function(data) {
console.info("EpisodeCollection.parse()", data, this);
return data.episodes;
}
});
SeasonModel = Backbone.Model.extend({
initialize: function(data) { this.parse(data) },
parse: function(data) {
console.info("SeasonModel.parse()", data, this);
var episodeCollection = new EpisodeCollection(data);
this.set('episodes', episodeCollection);
this.set('seasonNumber', data.seasonNumber);
return episodeCollection;
}
});
SeasonCollection = Backbone.Collection.extend({
model: SeasonModel,
initialize: function(data) { this.parse(data) },
parse: function(data) {
console.info("SeasonCollection.parse()", data, this);
return this.models;
}
});
SeriesModel = Backbone.Model.extend({
initialize: function(data) { this.parse(data) },
parse: function(data) {
console.info("SeriesModel.parse()", data, this);
}
});
var seriesModel = new...