Ember-data-partial-model
This addon adds support for partial records to Ember Data. Lets say your api for
/users
returns a shallow model like:
[ { id:1, name: 'BMac'}, {id:2, name:'Seb'}]
but /users/1
returns a detailed model
{ id:1,
name: 'BMac'
twitter: 'seb'
}
You can use this addon to define your User model as:
import { PartialModel, partial } from 'ember-data-partial-model/utils/model';
const { attr } = DS;
export default PartialModel.extend({
name: attr(),
extended: partial('user', 'extended', {
twitter: attr()
})
});
This addon will modify your application adapter/serializer, so that accessing user.get('extended')
or any of the extended properties will trigger a request for the detailed model.
For example:
let users = await store.find('user');
let user = users.objectAt(1);
user.get('extended')
user.get('twitter')
Thus you are safe from race conditions when rendering users, even if you have not loaded the full user
In your template you can do
{{user.twitter}}
and it will populate once the full user is loaded
Installation
git clone
this repository
npm install
bower install
Running
Running Tests
ember test
ember test --server
Building
For more information on using ember-cli, visit http://www.ember-cli.com/.