anchor.diff:      to the literal string of the template expression.
     code-example(format="." ).
       [(x)]="hero.name" &lt;==> [x]="hero.name" (xChange)="hero.name=$event"
  +    
  +  :marked
  +    We can write a two-way binding directive of our own to exploit this behavior.
   
   :marked
     Is `[(ngModel)]` all we need? Is there ever a reason to fall back to its expanded form?
   
  -  The `[( )]` syntax can only set the data-bound property when the value changes.
  +  The `[( )]` syntax can only _set_ a data-bound property.
     If we need to do something more or something different, we need to write the expanded form ourselves.
   
     Let's try something silly like forcing the input value to uppercase:
  
positive.code: :marked
    There’s a story behind this construction, a story that builds on the property and event binding techniques we learned previously.
  
    We could have achieved the same result as `NgModel` with separate bindings to
    the `<input>` element's  `value` property and `input` event.
  // #enddocregion ngModel-3
  +makeExample('template-syntax/ts/app/app.component.html', 'without-NgModel')(format=".")
  
negative.code:   ## Two-way binding with NgModel
    When developing data entry forms, we often want to both display a data property and update that property when the user makes changes.
  
    The `[(NgModel)]` two-way data binding syntax makes that easy. Here's an example:
  // #enddocregion ngModel-1
  +makeExample('template-syntax/ts/app/app.component.html', 'NgModel-1')(format=".")
  // #docregion ngModel-2
  