Instead of add todo as a string, we create a data model:
export class TodoModel{ constructor( public title: string = "" ){}}export class TodoService{ todos: TodoModel[] = [ new TodoModel('eat'), new TodoModel('sleep'), new TodoModel('work') ]; addTodo(value: TodoModel):void { this.todos.push(value); }}
todoInput.ts
import {Component, View, FORM_DIRECTIVES} from "angular2/angular2";import {TodoService, TodoModel} from "./todoService";@Component({ selector: 'todo-input'})@View({ directives: [FORM_DIRECTIVES], template: ``})export class TodoInput{ todoModule:TodoModel = new TodoModel(); constructor( //@Inject(TodoService) todoService public todoService:TodoService ){ this.todoService = todoService; } onSubmit(){ this.todoService.addTodo(this.todoModule); this.todoModule = new TodoModel(); // reinit the this.todoModule }}