Skip to content

Instantly share code, notes, and snippets.

@jmimi
Last active March 6, 2017 03:38
Show Gist options
  • Save jmimi/5ef83018c9fdef3e57be5b12c7e3cd5e to your computer and use it in GitHub Desktop.
Save jmimi/5ef83018c9fdef3e57be5b12c7e3cd5e to your computer and use it in GitHub Desktop.
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
refinedTeams: Ember.computed.filter('model.[]', function(team){
return !team.get('players').isAny('status', 'injured');
}),
actions: {
loadData(){
this.set('model', this.store.peekAll('team'));
}
}
});
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'),
"status": attr('string'),
"team": DS.belongsTo('team',{
async: 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'),
"players": DS.hasMany('player',{
async: true
})
});
import Ember from 'ember';
export default Ember.Route.extend({
init(){
this._super(...arguments);
const players = [
{
id: '1',
name: 'Player 1',
status: 'healthy',
team: '1'
},
{
id: '2',
name: 'Player 2',
status: 'healthy',
team: '1'
},
{
id: '3',
name: 'Player 3',
status: 'injured',
team: '1'
},
{
id: '4',
name: 'Player 4',
status: 'healthy',
team: '2'
},
{
id: '5',
name: 'Player 5',
status: 'healthy',
team: '2'
}
];
const teams = [
{
id: '100',
name: 'Team 1',
players: ['1', '2', '3']
},
{
id: '200',
name: 'Team 2',
players: ['4', '5']
}
];
this.store.pushPayload('player', {players: players});
this.store.pushPayload('team', {teams: teams});
},
model(){
return null;
//return this.store.peekAll('team');
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<button {{action "loadData"}}>Load</button>
<br>
{{outlet}}
<br>
<br>
{{#each refinedTeams as |team index|}}
<strong>{{team.name}}</strong><br>
<em>Players</em>
<ul>
{{#each team.players as |player|}}
<li>{{player.name}} - {{player.status}}</li>
{{/each}}
</ul>
{{/each}}
{
"version": "0.11.0",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.10.2",
"ember-data": "2.11.0",
"ember-template-compiler": "2.10.2",
"ember-testing": "2.10.2"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment