Skip to content

Instantly share code, notes, and snippets.

@willrax
Last active April 17, 2018 17:40
Show Gist options
  • Save willrax/38152adcba2ffc1ee3c0 to your computer and use it in GitHub Desktop.
Save willrax/38152adcba2ffc1ee3c0 to your computer and use it in GitHub Desktop.
Computed Properties
import Ember from 'ember';
const { computed, get, set } = Ember;
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
person: {
first: "Roger",
last: "Rabbit"
},
fullName: computed('person.{first,last}', function() {
let firstName = get(this, 'person.first');
let lastName = get(this, 'person.last');
return `${firstName} ${lastName}`;
}),
actions: {
changeFirstName() {
set(this, 'person.first', 'Madison');
},
changeFullName() {
set(this, 'fullName', 'Arnold Rabbit');
}
}
});
<h1>{{fullName}}</h1>
<br>
<br>
This will change one of the computed properties keys.
<br>
<br>
<button onclick={{action "changeFirstName"}}>
Set Person First Name
</button>
<br>
<br>
<br>
<br>
This will set the computed property to a string value and stop future changes to the watched key from triggering a refresh.
<br>
<br>
<button onclick={{action "changeFullName"}}>
Set Full Name
</button>
{
"version": "0.6.0",
"EmberENV": {
"FEATURES": {}
},
"options": {
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.3.1/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.3.3/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment