// #docregion
import {Component} from 'angular2/core';
import {Todo} from './todo';
import {TodoList} from './todo_list';
import {TodoForm} from './todo_form';
@Component({
selector: 'todo-app',
template: `
Todo
{{remaining}} of {{todos.length}} remaining
[ archive ]
`,
styles:['a { cursor: pointer; cursor: hand; }'],
directives: [TodoList, TodoForm]
})
export class TodoApp {
todos: Todo[] = [
{text:'learn angular', done:true},
{text:'build an angular app', done:false}
];
get remaining() {
return this.todos.reduce((count: number, todo: Todo) => count + +!todo.done, 0);
}
archive(): void {
var oldTodos = this.todos;
this.todos = [];
oldTodos.forEach((todo: Todo) => {
if (!todo.done) this.todos.push(todo);
});
}
addTask(task: Todo) {
this.todos.push(task);
}
}