Skip to content

Instantly share code, notes, and snippets.

@telekosmos
Created December 4, 2012 12:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save telekosmos/4203206 to your computer and use it in GitHub Desktop.
Save telekosmos/4203206 to your computer and use it in GitHub Desktop.
angularjs mvctodo controller with coffeescript
@TodoController = () ->
@todos = []
@newTodo = ""
@addTodo = () ->
if @newTodo.length > 0
@todos.push( { content: @newTodo, done: false, editing: false } )
@newTodo = ""
@editTodo = (todo) ->
item.editing = false for item in @todos
todo.editing = true
@finishEditing = (todo) -> todo.editing = false
@removeTodo = (todo) -> @todos.remove(todo)
countTodos = (list, status) ->
(todo for todo in list when todo.done is status).length
@remainingTodos = () -> countTodos(@todos, false)
@finishedTodos = () -> countTodos(@todos, true)
@clearCompletedItems = () ->
oldTodos = @todos
@todos = []
@todos.push(todo) for todo in oldTodos when not todo.done
@hasFinishedTodos = () -> @finishedTodos() > 0
@hasTodos = () -> @todos.length > 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment