title: AngularJS ng-class adding class but not removing it on change
body: <p>I have a text input within an ng-repeat. When I click on the input I'm attaching a date picker and triggering a change() on the input when the date is selected.</p>
  
  <pre><code>$(this).val(picker.startDate.format(datePickerOutputFormat)).change();
  </code></pre>
  
  <p>This works and AngularJS scope picks up the change. I have a span on the page that is bound to the date value so I can see this changing.</p>
  
  <p>On the input, I want to highlight null dates using ng-class with the following.</p>
  
  <pre><code>&lt;input type="text"
    class="form-control single-date-input"
    placeholder="dd/mm/yyyy"
    ng-model="demoInRepeat.date"
    ng-class="{ 'invalid-input' : null == demoInRepeat.date }"&gt;
  </code></pre>
  
  <p>This works fine, until I manual edit the input value and delete the date. If I pick the date off the date picker again the invalid-input class remains even though the value update on both the input and on the span I'm using to show the scope is changing.</p>
  
  <p>Even if I display the evaluated value of the ng-class condition, this shows true/false as expected.</p>
  
  <pre><code>{{ null == demoInRepeat.date }}
  </code></pre>
  
  <p>I would expect the invalid-input class to be removed once the date is re-selected. Any ideas?</p>
  
  <p>Using AngularJS v1.5.8</p>