Skip to content

Instantly share code, notes, and snippets.

@jonathanperret
Last active February 6, 2019 18:45
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 jonathanperret/ef0bd4e02b1b4d2b98f1b03210aa3d05 to your computer and use it in GitHub Desktop.
Save jonathanperret/ef0bd4e02b1b4d2b98f1b03210aa3d05 to your computer and use it in GitHub Desktop.
New Twiddle
import DS from 'ember-data';
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
export default DS.Adapter.extend({
async findRecord(store, type, id, snapshot) {
console.log(`findRecord(${type}, ${id})`, snapshot);
await delay(2000);
return {
id: id,
magic: Math.round(Math.random() * 1000),
loadedat: (new Date).valueOf(),
};
},
async findAll(store, type, sinceToken, snapshotRecordArray) {
console.log(`findAll(${type})`);
await delay(1000);
return [
{ id: 456, magic: 779, loadedat: 1 },
{ id: 123, magic: 999, loadedat: 3600 },
];
},
shouldBackgroundReloadAll() {
console.log('shouldBackgroundReloadAll', ...arguments);
return false;
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
magic: attr('number', { defaultValue: 1234 }),
loadedat: attr('date'),
});
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
this.route('my-model', function(){
this.route('list');
this.route('show', { path: ':id' });
});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('my-model', { include: 'children' });
},
});
import Ember from 'ember';
export default Ember.Route.extend({
model({ id }) {
return this.store.findRecord('my-model', id);
}
});
<h1>Welcome tzzzzo {{appName}}</h1>
<br>
{{#link-to "my-model.list"}}vazy{{/link-to}}
<br>
{{outlet}}
<dl>
{{#each model as |m|}}
<dt>{{#link-to "my-model.show" m.id}}<b>{{ m.id }}</b>{{/link-to}}</dt>
<dd>{{ m.magic }} ({{m.loadedat}})</dd>
{{/each}}
</dl>
{{model.id}}:{{ model.magic }} was loaded at {{ model.loadedat }} !
{
"version": "0.15.1",
"EmberENV": {
"FEATURES": {}
},
"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.4.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment