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