Skip to content

Instantly share code, notes, and snippets.

@ggayowsky
Last active March 25, 2019 20:20
Show Gist options
  • Save ggayowsky/e0c3ec2f5d49a3bd9dec5ed1d42af2a1 to your computer and use it in GitHub Desktop.
Save ggayowsky/e0c3ec2f5d49a3bd9dec5ed1d42af2a1 to your computer and use it in GitHub Desktop.
Set vs. Push Objects Behaviour
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
prop: Ember.computed('_data.prop.[]', {
get() {
return this._data['prop'];
}
}),
sortedProp: Ember.computed('prop.@each.time', {
get() {
return this.prop.sort((a, b) => a.time - b.time);
}
}),
init() {
this.set('_data', { prop: [] });
},
actions: {
updatePropViaSet() {
Ember.set(this._data, 'prop', [...this._data.prop, ...[{ time: 100 }]]);
},
updatePropViaPushObjects() {
this._data.prop.pushObject({ time: 100 });
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<button {{action 'updatePropViaSet'}}>Update via Set</button>
<button {{action 'updatePropViaPushObjects'}}>Update via Push Objects</button>
{{#each sortedProp as |prop|}}
{{prop.time}}
{{/each}}
<br>
{{outlet}}
<br>
<br>
{
"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