title: ngModelChange doesn't fire when ngModel is changed from the component without user input
body: <p>I have a directive that should update some internal value based on input's ngModel. This works fine when user types values in manually, but stops working when ngModel is changed from the component.</p>
  
  <p>Component template:</p>
  
  <pre><code>&lt;input [(ngModel)]="myValue" myExample&gt;
  </code></pre>
  
  <p>Changing ngModel in component:</p>
  
  <pre><code>ngOnInit() {
    this.getDataFromApi()
    .then((result) =&gt; {
      this.myValue = result;
    })
  }
  </code></pre>
  
  <p>Directive:</p>
  
  <pre><code>import { Directive, OnInit } from '@angular/core';
  import { NgModel } from '@angular/forms';
  
  @Directive({
    selector: '[myExample][ngModel]',
    providers: [NgModel],
    host: {
      '(ngModelChange)' : 'onModelChange($event)',
    }
  })
  export class myExampleDirective implements OnInit {
    private _valueInDirective;
  
    constructor(private _element: ElementRef, private _model: NgModel) { }
  
    onModelChange(event) {
      this._valueInDirective = event;
    }
  }
  </code></pre>
  
  <p>If the ngModel is updated from controller after an API call, ngModelChange in directive doesn't fire and the _valueInDirective is not updated. How to make sure that every time the ngModel is updated, value in directive will be changed as well?</p>