[API] Check/uncheck todos

This commit is contained in:
Victor Woeltjen 2016-05-27 16:55:10 -07:00
parent a79e958ffc
commit 0525ba6b0b
2 changed files with 18 additions and 4 deletions

View File

@ -56,5 +56,11 @@ define([
main: "MAIN" main: "MAIN"
}; };
MCT.prototype.verbs = {
mutate: function (domainObject, mutator) {
return domainObject.useCapability('mutation', mutator);
}
};
return MCT; return MCT;
}); });

View File

@ -54,7 +54,7 @@ define([
complete: $els.find('.example-todo-button-complete') complete: $els.find('.example-todo-button-complete')
}; };
var filters = { var filters = {
all: function (task) { all: function () {
return true; return true;
}, },
incomplete: function (task) { incomplete: function (task) {
@ -71,12 +71,20 @@ define([
tasks = tasks.filter(filters[state.filter]); tasks = tasks.filter(filters[state.filter]);
$list.empty(); $list.empty();
tasks.forEach(function (task) { tasks.forEach(function (task, index) {
var $taskEls = $(taskTemplate); var $taskEls = $(taskTemplate);
$taskEls.find('.example-task-checked') var $checkbox = $taskEls.find('.example-task-checked');
.prop('checked', task.completed); $checkbox.prop('checked', task.completed);
$taskEls.find('.example-task-description') $taskEls.find('.example-task-description')
.text(task.description); .text(task.description);
$checkbox.on('change', function () {
var checked = !!$checkbox.prop('checked');
mct.verbs.mutate(domainObject, function (model) {
model.tasks[index].completed = checked;
});
});
$list.append($taskEls); $list.append($taskEls);
}); });