ExtJS Template
HTML
<link rel="stylesheet" href="//cdn.sencha.io/ext-4.2.0-gpl/resources/css/ext-all-gray.css" />
<script src="//cdn.sencha.io/ext-4.2.0-gpl/ext-all-dev.js"></script>
JavaScript
Ext.define('My.model.Author', {
extend: 'Ext.data.Model',
fields: [
'name'
]
});
Ext.define('My.model.Comment', {
extend: 'Ext.data.Model',
fields: [
'emailAddress',
'body'
]
});
Ext.define('My.model.BlogPost', {
extend: 'Ext.data.Model',
fields: [
'title',
'body'
],
belongsTo: [
{
name: 'author',
instanceName: 'author',
model: 'My.model.Author',
getterName: 'getAuthor',
setterName: 'setAuthor',
associationKey: 'author'
}
],
hasMany: [
{
name: 'comments',
model: 'My.model.Comment',
associationKey: 'comments'
}
],
proxy: {
type: 'ajax',
url: 'https://dl.dropboxusercontent.com/u/1015920/Ext/blog-posts.json',
reader: {
type: 'json',
root: 'data'
}
}
});
My.model.BlogPost.load(1, {
success: function(record, operation) {
console.log(record.get('title'));
console.log(record.getAuthor().get('name'));
console.log(record.comments().getCount());
}
});