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...