title: Type casting within a template in Angular 2
body: <p>I'm working on an Angular project (Angular 4.0.0) and I'm having trouble binding a property of an abstract class to ngModel because I first need to cast it as the concrete class it actually is in order to access the property.</p>
  
  <p>i.e. I have an AbstractEvent class this has a  a concrete implementation Event which has a boolean property 'acknowledged' which I need a two way binding via ngModel to set with a checkbox.</p>
  
  <p>I currently have this element in my DOM:</p>
  
  <pre><code>&lt;input type="checkbox" *ngIf="event.end" [(ngModel)]="(event as Event).acknowledged" 
                                            [disabled]="(event as Event).acknowledged"&gt;
  </code></pre>
  
  <p>Unfortunately this is throwing the following error:</p>
  
  <blockquote>
    <p>Uncaught Error: Template parse errors:
    Parser Error: Missing expected ) at column 8 in [(event as Event).acknowledged]</p>
  </blockquote>
  
  <p>Googling around seemed to suggest this might be because using 'as' is not supported when using it inside a template? Although I'm not certain about this.</p>
  
  <p>I also can't work out how to just write a function for it in my typescript file driving the template because this would break the two way binding on ngModel that I require.</p>
  
  <p>If anyone has any way to get around this or perform type casting in angular templates correctly I would be very appreciative! </p>