Two-way binding still exists in Angular 2 and ng-model makes it simple. The syntax is a combination of the [input] and (output) syntax to represent that the data is being pushed out and pulled in.
import {Component} from 'angular2/core'; import {TodoService} from './TodoService'; @Component({ selector: 'todo-input', template: ` <form (submit)="onSubmit()"> <input type="text" [(ngModel)]="todoModule"> </form> ` }) export class TodoInput{ todoModule: string; constructor(public todoService: TodoService){ } onSubmit(){ this.todoService.todos.push(this.todoModule); console.log(this.todoService.todos); } }