title: Angular 2 - Uncaught (in promise): TypeError: Cannot read property 'title' of undefined
body: <p>I see this error in my App when I try to add some text input field with dual binding:</p>
  
  <pre><code>   ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'title' of undefined
  TypeError: Cannot read property 'title' of undefined
      at Object.eval [as updateRenderer] (ng:///AppModule/TapesComponent.ngfactory.js:660:29)
      at Object.debugUpdateRenderer [as updateRenderer] (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12658:21)
      at checkAndUpdateView (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12037:14)
      at callViewAction (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12347:17)
      at execComponentViewsAction (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12293:13)
      at checkAndUpdateView (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12038:5)
      at callWithDebugContext (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:13020:42)
      at Object.debugCheckAndUpdateView [as checkAndUpdateView] (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12560:12)
      at ViewRef_.detectChanges (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:10129:63)
      at RouterOutlet.activateWith (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:5378:42)
      at ActivateRoutes.placeComponentIntoOutlet (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4558:16)
      at ActivateRoutes.activateRoutes (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4539:26)
      at eval (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4475:58)
      at Array.forEach (native)
      at ActivateRoutes.activateChildRoutes (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4475:29)
      at Object.eval [as updateRenderer] (ng:///AppModule/TapesComponent.ngfactory.js:660:29)
      at Object.debugUpdateRenderer [as updateRenderer] (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12658:21)
      at checkAndUpdateView (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12037:14)
      at callViewAction (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12347:17)
      at execComponentViewsAction (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12293:13)
      at checkAndUpdateView (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12038:5)
      at callWithDebugContext (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:13020:42)
      at Object.debugCheckAndUpdateView [as checkAndUpdateView] (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:12560:12)
      at ViewRef_.detectChanges (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:10129:63)
      at RouterOutlet.activateWith (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:5378:42)
      at ActivateRoutes.placeComponentIntoOutlet (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4558:16)
      at ActivateRoutes.activateRoutes (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4539:26)
      at eval (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4475:58)
      at Array.forEach (native)
      at ActivateRoutes.activateChildRoutes (http://localhost:3000/node_modules/@angular/router/bundles/router.umd.js:4475:29)
      at resolvePromise (http://localhost:3000/node_modules/zone.js/dist/zone.js:712:31) [angular]
      at resolvePromise (http://localhost:3000/node_modules/zone.js/dist/zone.js:683:17) [angular]
      at http://localhost:3000/node_modules/zone.js/dist/zone.js:760:17 [angular]
      at Object.onInvokeTask (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:4123:37) [angular]
      at ZoneDelegate.invokeTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:397:36) [angular]
      at Zone.runTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:165:47) [&lt;root&gt; =&gt; angular]
      at drainMicroTaskQueue (http://localhost:3000/node_modules/zone.js/dist/zone.js:593:35) [&lt;root&gt;]
      at HTMLAnchorElement.ZoneTask.invoke (http://localhost:3000/node_modules/zone.js/dist/zone.js:464:25) [&lt;root&gt;]
  </code></pre>
  
  <p>I have this Tape class:</p>
  
  <pre><code>    export class Tape {
    constructor (
    public id: number,
    public title: string,
    public date?: string,
    public rating?: number,
    public description?: string,
    public photo?: string){}
  }
  </code></pre>
  
  <p>And component</p>
  
  <pre><code>import { Component, OnInit } from '@angular/core';
  import { Tape } from './tape'
  import { TapeService } from './tape.service';
  import { Router } from '@angular/router';
  // import { TitlePipe } from './titleFilter';
  
  @Component({
    selector: 'my-tapes',
    templateUrl: './tapes.component.html',
    styleUrls: [`./tapes.component.css`],
    providers: [TapeService],
  
  })
  export class TapesComponent implements OnInit {
    pageName = 'VHS Movies listing';
    tapes: Tape[];
    selectedTape: Tape;
    model = new Tape(0,'s','s',0,'s','sS'); 
  </code></pre>
  
  <p>Component HTML looks like</p>
  
  <pre><code>&lt;div class="form-group"&gt;
                &lt;label for="title"&gt;Title{{model.title}}&lt;/label&gt;
                &lt;input type="text" class="form-control" id="title" required [(ngModel)]="model.title" name="title" #title="ngModel"&gt;              Written text: {{tape.title}}
                &lt;div [hidden]="title.valid || title.pristine" class="alert alert-danger"&gt;
                  Title is mandatory
                &lt;/div&gt;
              &lt;/div&gt;
  </code></pre>
  
  <p>I just started learning Angular 2, but for me it should get title from module. He he can't read title?</p>