title: Why does Angular 2 binding not work in this case? (sub component input field)
body: <p>I have an (Angular 2) root component called AppComponent that uses another component called Subcomp. App passes an <code>@Input()</code> parameter to Sub. Sub uses this variable for one-way binding in an input field.</p>
  
  <p>Now I...</p>
  
  <ol>
  <li>Set the parameter's value to some initial value ("start"); this is displayed in the input field as expected.</li>
  <li>Change the text in the input field to something else.</li>
  <li>Click on a button to programmatically reset the value in the AppComponent back to "start".</li>
  </ol>
  
  <p>I then expect the input field to also reset to "start", but instead it keeps displaying the changed text from step 2. Is that correct behavior?</p>
  
  <p>The code:</p>
  
  <pre><code>class Todo {
      constructor(public title: string) {}
  }
  
  @Component({
      selector: 'subcomp',
      directives: [FORM_DIRECTIVES],
      template: `New Title: &lt;input type="text" [ngModel]="subtodo.title"&gt;`
  })
  export class Subcomp {
      @Input() subtodo: Todo;
  }
  
  @Component({
      selector: 'my-app',
      directives: [Subcomp],
      template: `To do: {{todo.title}}&lt;br/&gt;
                 &lt;subcomp [subtodo]="todo"&gt;&lt;/subcomp&gt;&lt;br/&gt;
                 &lt;button (click)="update()"&gt;Update&lt;/button&gt;`
  })
  export class AppComponent {
  
      todo: Todo = new Todo('start');
  
      update() {
          this.todo = new Todo('start');
      }
  
  }
  </code></pre>