Skip to content

Instantly share code, notes, and snippets.

@James-Byrne
Last active June 29, 2017 07:07
Show Gist options
  • Save James-Byrne/a201157d36681b13e079166cc45fb9b8 to your computer and use it in GitHub Desktop.
Save James-Byrne/a201157d36681b13e079166cc45fb9b8 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
const { computed, defineProperty, get, set } = Ember;
export default Ember.Controller.extend({
number: 0,
update_number: {
value: 0,
some_other_value: 100
},
init() {
this._super();
for (let k in get(this, 'update_number')) {
defineProperty(this, `update_number.${k}`, computed(`update_number.${k}`, function() {
console.log(`fired with ${k}`);
// Do something generic
let n = get(this, 'number');
set(this, 'number', n + 1);
}));
}
},
actions: {
update_some_other_value() {
let num = get(this, 'update_number.some_other_value');
set(this, 'update_number.some_other_value', num + 1);
},
update_value() {
let num = get(this, 'update_number.value');
set(this, 'update_number.value', num + 1);
}
}
});
<br>
<button class="btn btn-primary" {{action "update_some_other_value"}}>+ Update Some Other Value</button>
<br>
<br>
<button class="btn btn-primary" {{action "update_value"}}>+ Update Value</button>
<br>
<br>
Number of times any value on the model was updated : {{number}}
{
"version": "0.12.1",
"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.12.0",
"ember-template-compiler": "2.12.0",
"ember-testing": "2.12.0"
},
"addons": {
"ember-data": "2.12.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment