Skip to content

Instantly share code, notes, and snippets.

@michaelryancaputo
Last active May 3, 2019 02:34
Show Gist options
  • Save michaelryancaputo/8135132e949e414a7aadc68d39ac0cba to your computer and use it in GitHub Desktop.
Save michaelryancaputo/8135132e949e414a7aadc68d39ac0cba to your computer and use it in GitHub Desktop.
Todo Play
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
});
export default Router;
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
export default Route.extend({
});
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
export default Route.extend({
data: service(),
model() {
const output = this.data.findAll();
console.log(output);
return output;
}
});
import Service from '@ember/service';
export default Service.extend({
lastId: 0,
data: null,
findAll() {
return this.data || [{id: 1, value:"Hello", complete: false}, {id: 2, value:"Hello 2", complete: true}];
//this.set('data', JSON.parse(window.localStorage.getItem('todos') || '[]'));
},
add(attrs) {
let todo = Object.assign({ id: this.incrementProperty('lastId') }, attrs);
this.data.pushObject(todo);
this.persist();
return todo;
},
delete(todo) {
this.data.removeObject(todo);
this.persist();
},
persist() {
window.localStorage.setItem('todos', JSON.stringify(this.data));
}
});
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.strike {
text-decoration: line-through;
}
<ul>
{{#each this.model as |todo|}}
<li class="{{if todo.complete 'strike'}}">
{{todo.value}}
Todo 1 - <input type="checkbox" checked={{if todo.complete true false}} />
</li>
{{/each}}
</ul>
<input type="text" placeholder="Add a new Todo" />
{
"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