Skip to content

Instantly share code, notes, and snippets.

@feanor07
Last active December 20, 2019 12:08
Show Gist options
  • Save feanor07/883bc4f6f3b9f5e9ff178dff01196e8c to your computer and use it in GitHub Desktop.
Save feanor07/883bc4f6f3b9f5e9ff178dff01196e8c to your computer and use it in GitHub Desktop.
Simren's Quesiton
import Ember from 'ember';
const { computed } = Ember;
const Foo = Ember.Object.extend({
init() {
this._super(...arguments)
this.set('amount', { value: 100 })
},
amountValue: computed.alias('amount.value')
})
const FOOS = [Foo.create(), Foo.create()]
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
init() {
this._super(...arguments)
this.set('item', { foos: FOOS })
},
totalNotWorking: computed('item.foos.@each.amount.value', function() {
return this.item.foos.reduce((result, foo) => {
return result + foo.amount.value
}, 0)
}),
totalWorking: computed('item.foos.@each.amountValue', function() {
return this.item.foos.reduce((result, foo) => {
return result + foo.amount.value
}, 0)
}),
actions: {
incrementFirstsValue() {
const firstItem = this.item.foos[0]
Ember.set(firstItem, 'amountValue', firstItem.amountValue + 100)
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
Total Not Working due to nested prop after @each: {{totalNotWorking}}<br>
<button onclick={{action "incrementFirstsValue"}}>Increment First Foo's Value</button><br>
Total Wirking: {{totalWorking}}
<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