Backbone Relational Template

Underscore, Backbone, Backbone-relational for http://stackoverflow.com/questions/10698737/addmodels-not-triggered-backbone-relational

by ryantomaselli

HTML

<script src="https://raw.github.com/documentcloud/underscore/master/underscore-min.js"></script>
<script src="https://raw.github.com/documentcloud/backbone/master/backbone-min.js"></script>
<script src="https://raw.github.com/PaulUithol/Backbone-relational/master/backbone-relational.js"></script>
<ul></ul>

CoffeeScript

models = {}
Backbone.Relational.store.addModelScope(models)


class models.Group extends Backbone.RelationalModel
    relations: [
        type: Backbone.HasMany
        key: 'things'
        relatedModel: 'Thing'
        reverseRelation:
            key: 'group'           
    ]
    url: =>
        "/echo/json/?#{@id}"
    

class models.Thing extends Backbone.RelationalModel
    url: =>
        "/echo/json/?#{@id}"
    
g = new models.Group
    id: 1
    name: 'Group 1'
    things: [
        id:'a'
        name: 'Thing A'
    ,
        id:'b'
        name: 'Thing B'
    ,
        id:'c'
        name: 'Thing C'
    ]
    
$('ul').append("<li>Collection Length: #{g.get('things').length}</li>")
$('ul').append("<li>KeyContents.length: #{g._relations[0].keyContents.length}</li>")

$('ul').append("<li>destroying thing b</li>")
g.get('things').at(1).destroy()
    
$('ul').append("<li>Collection Length: #{g.get('things').length}</li>")
$('ul').append("<li>KeyContents.length: #{g._relations[0].keyContents.length}</li>")
    
$('ul').append("<li>fetching related things</li>")
g.fetchRelated('things')

$('ul').append("<li>Collection Length: #{g.get('things').length}</li>")
$('ul').append("<li>KeyContents.length: #{g._relations[0].keyContents.length}</li>")