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();