Backbone Template

Standard fiddle

by EMWU

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.marionette/1.8.6/backbone.marionette.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone-relational/0.8.6/backbone-relational.js"></script>

JavaScript

Mammal = Backbone.RelationalModel.extend({
                subModelTypes: {
                    'primate': 'Primate',
                    'carnivore': 'Carnivore'
                }
            });

            Primate = Mammal.extend();
            Carnivore = Mammal.extend();

            MammalCollection = Backbone.Collection.extend({
                model: Mammal
            });

// Create a collection that contains a 'Primate' and a 'Carnivore'.
            var mammals = new MammalCollection([
                { id: 3, species: 'chimp', type: 'primate' },
                { id: 5, species: 'panther', type: 'carnivore' }
            ]);

            var chimp = mammals.get( 3 );

            alert( 'chimp is a mammal? ' + ( chimp instanceof Mammal ) + '\n' +
                'chimp is a carnivore? ' + ( chimp instanceof Carnivore ) + '\n' +
                'chimp is a primate? ' + ( chimp instanceof Primate ) );