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, View, FORM_DIRECTIVES} from "angular2/angular2"; import {TodoService} from "./todoService"; @Component({ selector: 'todo-input' }) @View({ directives: [FORM_DIRECTIVES], template: ` <form action="" (ng-submit)="onSubmit()"> <input type="text" [(ng-model)]="todoModule">{{todoModule}} </form> ` }) export class TodoInput{ todoModule; constructor( //@Inject(TodoService) todoService public todoService:TodoService ){ this.todoService = todoService; console.log(todoService); } onSubmit(){ this.todoService.addTodo(this.todoModule); } }