Skip to content

Instantly share code, notes, and snippets.

@wuarmin
Last active February 26, 2019 12:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wuarmin/6454331922fc6b35fdc9f64123260665 to your computer and use it in GitHub Desktop.
Save wuarmin/6454331922fc6b35fdc9f64123260665 to your computer and use it in GitHub Desktop.
so-question-54874912
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Mirage from 'ember-cli-mirage';
import Ember from 'ember';
export default function() {
this.get('/image-models', function(db, request) {
let image = {
id: 'image_1',
fileName: 'myImage',
fileExt: 'png',
url: 'url',
notes: [{
id: 'note_2',
category: 'category',
text: 'hello world'
}]
};
return {
data: {
type: 'image-models',
id: image.id,
attributes: { "file-name": image.fileName },
relationships: {
"notes": {
data: [{ type: "note-models", id: image.notes[0].id }]
}
}
},
included: image.notes.map((note) => {
return {
type: 'note-models',
id: note.id,
attributes: { text: note.text }
};
})
};
});
}
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
import MediaModel from './media-model';
export default MediaModel.extend({
fileName: DS.attr('string'),
fileExt: DS.attr('string'),
url: DS.attr('string'),
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
notes: DS.hasMany('note-model', { inverse: 'noteable' }),
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
category: DS.attr('string'),
text: DS.attr('string'),
image: DS.belongsTo('image'),
noteable: DS.belongsTo('media-model', { polymorphic: true }),
});
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
this.route('images', function() {});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('image-model');
}
});
<h1>Welcomes to {{appName}}</h1>
<br>
<br>
{{#link-to "images"}}Show Image{{/link-to}}
{{outlet}}
<br>
<ul>
{{#each model as |image|}}
<li>{{image.fileName}} (image.notes.length: {{image.notes.length}})</li>
<ul>
{{#each image.notes as |note|}}
<li>{{note.text}}</li>
{{/each}}
</ul>
{{/each}}
</ul>
{
"version": "0.13.0",
"ENV": {
"ember-cli-mirage": {
"enabled": true
}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.16.2",
"ember-template-compiler": "2.16.2",
"ember-testing": "2.16.2"
},
"addons": {
"ember-data": "2.16.3",
"ember-cli-mirage": "0.4.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment