polish todo example

This commit is contained in:
Evan You 2013-08-25 03:07:48 -04:00
parent 60bd928b56
commit f29754131c
2 changed files with 7 additions and 10 deletions

View File

@ -28,7 +28,7 @@
<li <li
class="todo" class="todo"
sd-each="todo:todos" sd-each="todo:todos"
sd-show="todoFilter(todo.completed)" sd-show="todoFilter(todo)"
sd-class="completed:todo.completed, editing:todo.editing" sd-class="completed:todo.completed, editing:todo.editing"
> >
<div class="view"> <div class="view">

View File

@ -1,18 +1,17 @@
seed.config({ debug: false }) seed.config({ debug: false })
var filters = { var filters = {
all: function () { return true }, // need to access todo.completed in here so Seed.js can capture dependency.
active: function (val) { return !val }, all: function (todo) { return todo.completed || true },
completed: function (val) { return val } active: function (todo) { return !todo.completed },
completed: function (todo) { return todo.completed }
} }
var Todos = seed.ViewModel.extend({ var Todos = seed.ViewModel.extend({
init: function () { init: function () {
this.todos = todoStorage.fetch() this.todos = todoStorage.fetch()
this.remaining = this.todos.filter(function (todo) { this.remaining = this.todos.filter(filters.active).length
return filters.active(todo.completed)
}).length
this.updateFilter() this.updateFilter()
}, },
@ -64,9 +63,7 @@ var Todos = seed.ViewModel.extend({
}, },
removeCompleted: function () { removeCompleted: function () {
this.todos.mutateFilter(function (todo) { this.todos.mutateFilter(filters.active)
return filters.active(todo.completed)
})
todoStorage.save() todoStorage.save()
}, },