Skip to content

Instantly share code, notes, and snippets.

@GCheung55
Created October 19, 2018 22:16
Show Gist options
  • Save GCheung55/3e6e2e2fb556c13024dffaf7036a6a93 to your computer and use it in GitHub Desktop.
Save GCheung55/3e6e2e2fb556c13024dffaf7036a6a93 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
import EmberObject, { computed, get } from '@ember/object';
export DateLogs = Ember.Object.extend({
model: null,
foodLogs: computed('model.foodLogs', function() {
return get(this, 'model.foodLogs')
}),
foodLogLength: computed('foodLogs.[]', function() {
return get(this, 'foodLogs.length');
})
});
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
dateLogs: computed(function() {
return Ember.A([
EmberObject.create({
foodLogs: Ember.A([])
}),
EmberObject.create({
foodLogs: Ember.A([])
})
]);
}),
foodLogs: computed(function() {
const dateLogs = get(this, 'dateLogs');
let obj = EmberObject.create({
dateLogs: dateLogs.map((dateLog) => {
return DateLogs.create({ dateLog });
}),
foodLogsLength: computed('[email protected]', function() {
return get(this, 'dateLogs').mapBy('foodLogLength').reduce((acc, len) => {
return acc + len;
}, 0)
})
})
return obj;
}),
foodLogs2: computed('foodLogs.[]', function() {
return get(this, 'foodLogs');
}),
actions: {
insert(foodLogs) {
foodLogs.pushObject(1);
},
pop(foodLogs) {
foodLogs.popObject();
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
{{log foodLogs2}}
{{#each dateLogs as |dateLog|}}
{{#each dateLog.foodLogs as |foodLog|}}
<span>Food Log {{foodLog}}</span><br>
{{/each}}
{{/each}}
<button {{action "insert" dateLogs.0.foodLogs}}>Insert</button>
<button {{action "pop" dateLogs.0.foodLogs}}>Pop</button>
{
"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