Skip to content

Instantly share code, notes, and snippets.

@sukima
Last active March 16, 2019 07:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sukima/f6dc47c5b5acfef9c76b76d8d913c660 to your computer and use it in GitHub Desktop.
Save sukima/f6dc47c5b5acfef9c76b76d8d913c660 to your computer and use it in GitHub Desktop.
ember-data 3.7 relationships
import Controller from '@ember/controller';
import { reads } from '@ember/object/computed';
export default Controller.extend({
bars: reads('model')
});
export default function() {
this.resource('foo');
this.resource('bar');
}
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({
name(i) { return `Bar-${i}`; }
});
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({
name(i) { return `Foo-${i}`; }
});
export default function(server) {
let foo = server.create('foo');
server.createList('bar', 10, { foo });
}
import { JSONAPISerializer } from 'ember-cli-mirage';
export default JSONAPISerializer.extend({
alwaysIncludeLinkageData: true,
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
name: attr('string'),
foo: belongsTo('foo')
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
name: attr('string'),
bars: hasMany('bar')
});
import Route from '@ember/routing/route';
export default Route.extend({
model() {
return this.store.findAll('bar');
}
});
<ul>
{{#each bars as |bar|}}
<li>
{{bar.name}}
-
{{#if bar.foo.isPending}}
Loading&hellip;
{{else}}
{{bar.foo.name}}
{{/if}}
</li>
{{else}}
<li>No Bars!</li>
{{/each}}
</ul>
{
"version": "0.15.1",
"EmberENV": {
"FEATURES": {}
},
"ENV": {
"ember-cli-mirage": {
"enabled": true
}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.4.3",
"ember-template-compiler": "3.4.3",
"ember-testing": "3.4.3"
},
"addons": {
"ember-data": "3.7.0",
"ember-cli-mirage": "0.4.6"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment