Embersjs data
by rsaccon
HTML
<script src="http://dl.dropbox.com/u/10540192/ember.js"></script>
<script src="http://dl.dropbox.com/u/10540192/ember-data.js"></script>
JavaScript
App = Em.Application.create({});
App.adapter = DS.Adapter.create({
counter:1,
createRecord: function(store, type, record) {
var self = this;
setTimeout(function() {
var id = self.counter++, data = record.get('data');
data.id = id;
console.log(data.get('name'));
store.didCreateRecord(record, data);
}, Math.floor(Math.random()*2000));
},
});
App.reopen({
store: DS.Store.create({
revision: 4,
adapter: App.adapter
})
});
App.Doc = DS.Model.extend();
App.Section = DS.Model.extend();
App.Page = DS.Model.extend();
App.Doc.reopen({
name: DS.attr('string'),
sections: DS.hasMany(App.Section)
});
App.Section.reopen({
name: DS.attr('string'),
doc: DS.belongsTo(App.Doc),
pages: DS.hasMany(App.Page)
});
App.Page.reopen({
name: DS.attr('string'),
section: DS.belongsTo(App.Section)
});
var doc = App.store.createRecord(App.Doc, { name: 'first doc' });
var section = App.store.createRecord(App.Section, { name: 'first section' });
doc.get('sections').pushObject(section);
var page = App.store.createRecord(App.Page, { name: 'first page' });
section.get('pages').pushObject(page);
App.store.commit();