Skip to content

Instantly share code, notes, and snippets.

@bargar
Last active November 7, 2016 19:41
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 bargar/df23640cda1f3005d8c8be9555a7fffc to your computer and use it in GitHub Desktop.
Save bargar/df23640cda1f3005d8c8be9555a7fffc to your computer and use it in GitHub Desktop.
Extending Computed Properties
import Ember from 'ember';
export default Ember.Route.extend({
model() {
// object with computed property
var Parent = Ember.Object.extend({
fullName: Ember.computed('first', 'last', function() {
return `${this.get('first')} ${this.get('last')}`;
})
});
// extending object that leverages original computed property
// and its own additional logic
var Child = Parent.extend({
fullName: Ember.computed('first', 'last', function() {
return `${this._super(...arguments)} Jr.`;
})
});
const template = {
first: 'Kilgore',
last: 'Trout'
};
const parent = Parent.create(template);
const child = Child.create(template);
return {
parent,
child
};
}
});
<h1>Extending Computed Properties</h1>
<br>
<br>
Parent:
{{model.parent.fullName}}<br>
Child {{model.child.fullName}}
<br>
<br>
{
"version": "0.10.6",
"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.9.0",
"ember-data": "2.9.0",
"ember-template-compiler": "2.9.0",
"ember-testing": "2.9.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment