UNPKG

todomvc

Version:

> Helping you select an MV\* framework

31 lines (24 loc) 780 B
window.TodoViewModel = (model) -> ENTER_KEY = 13 ESCAPE_KEY = 27 @editing = ko.observable(false) @completed = kb.observable(model, {key: 'completed', read: (-> return model.completed()), write: ((completed) -> model.completed(completed)) }, @) @title = kb.observable(model, { key: 'title' write: ((title) => if $.trim(title) then model.save(title: $.trim(title)) else _.defer(->model.destroy()) @editing(false) ) }, @) @onDestroyTodo = => model.destroy() @onCheckEditBegin = => if not @editing() @editing(true) $('.todo-input').focus() @onCheckEditEnd = (view_model, event) => if (event.keyCode == ESCAPE_KEY) @editing(false) if (event.keyCode == ENTER_KEY) or (event.type == 'blur') $('.todo-input').blur() @editing(false) return