title: myForm.$valid returns true even though required feld is empty
body: <p>I have a form <code>myForm</code> with some input fields.</p>
  
  <p>What am I trying to implement: Each field is <code>required</code> only if at least one of the others input fields is not empty.</p>
  
  <p>How I do it: I set <code>ng-required="ctrl.isAtLeasOneFieldSet()"</code> on each field. This function check to see if any field is set.
  Until here it works. If I set a field it returns <code>true</code> and if no field is set it returns <code>false</code>. I see it also in the "developer-console-inspector" in Firefox, required changes between true and false when I set and unset a value in one of the input fields.</p>
  
  <p>What doesn't works: I habe a submit function in my controller:</p>
  
  <pre><code>function submitForm(valid) {
     if(!valid) {
        return;
     }
  }
  </code></pre>
  
  <p>And on the form <code>ng-submit="ctrl.submitForm(ctrl.myForm.$valid)"</code>.
  Even though the <code>ng-required</code> is set to <code>true</code> and the input field is not set, the <code>valid</code> in <code>submitForm</code> returns <code>true</code>.
  I have used this technique thousand times with <code>ng-required="someValue"</code> but not with a functionl like now and it works fine. I think there is a problem when I set <code>ng-required</code> with <code>ctrl.isAtLeasOneFieldSet()</code>. It looks as the form will not get the update to <code>required</code>.</p>
  
  <p>Here a simulation:</p>
  
  <blockquote>
    <p>index.html - form</p>
  </blockquote>
  
  <pre><code>&lt;form name="ctrl.myForm" class="form-horizontal" role="form" data-ng-submit="ctrl.submitForm(ctrl.myForm.$valid)" novalidate&gt;
          &lt;input name="name"
              data-ng-model="data.name"
              data-ng-required="{{ctrl.isAtLeasOneFieldSet()}}"
          /&gt;
          &lt;input name="surname"
              data-ng-model="data.surname"
              data-ng-required="{{ctrl.isAtLeasOneFieldSet()}}"
          /&gt;
          &lt;!----&gt;
  &lt;/form&gt;
  </code></pre>
  
  <blockquote>
    <p>index.js - submitForm()</p>
  </blockquote>
  
  <pre><code>function submitForm(valid) {
      if(!valid) {
          return;
      }
  
      // Do something else
  }
  </code></pre>