title: AngularJS ng-disabled not working inside <td> element
body: <p>I have an attribute directive called rtpUniqueWeatherSetting that applies a $validator that checks for uniqueness against an array. Here's the view:</p>
  
  <pre><code>    &lt;form name="newform"&gt;
          &lt;div&gt;
            Form is valid: {{newform.$valid}}
          &lt;/div&gt;
        &lt;td&gt;
          &lt;input type="submit" ng-disabled="newform.$invalid"
                 class="btn btn-primary" ng-click="saveNew()"
                 value="Submit" /&gt;
          &lt;button class="btn btn-default" ng-click="cancelNew()"&gt;Cancel&lt;/button&gt;
        &lt;/td&gt;
        &lt;td&gt;
          &lt;input required rtp-unique-weather-setting type="number" ng-model="newSetting[fromProp]" name="newSettingFrom" /&gt;
        &lt;/td&gt;
        &lt;td&gt;
          &lt;input required type="number" ng-model="newSetting[rankProp]" name="newSettingRank" /&gt;
        &lt;/td&gt;
      &lt;/form&gt;
  </code></pre>
  
  <p>The directive with validator</p>
  
  <pre><code>require('./_index')
  .directive('rtpUniqueWeatherSetting', function() {
    return {
      restrict: 'A',
      require: 'ngModel',
      link: function(scope, elem, attr, ngModelController) {
  
        // TODO: REMOVE. FOR DEBUGGING ONLY.
        scope.$watch("newSetting", function() {
          console.log(ngModelController.$validators);
          console.log(ngModelController.$invalid);
        }, true);
  
        var findSetting = function(fromVal) {
          return scope.denormalizedSettingsObject.settings.find(function(setting) 
  {
            return setting.from === fromVal;
          });
        };
  
        ngModelController.$validators.uniqueSetting = function(modelValue, 
  viewValue) {
          var value = modelValue || viewValue;
          var existing = findSetting(value);
          if (existing) {
            console.log('An override starting at ' + value + ' already exists.');
            return false;
          }
          console.log('Overrides are unique.');
          return true;
        };
      }
    };
  });
  </code></pre>
  
  <p>I have a <code>$watch</code> observing the ngModelController.$invalid prop, and I'm passing the value to the console. Long story short, the validator is working flawlessly, and the $invalid property is being set as true whenever it needs to be, and vice versa. However, ng-disabled doesn't seem to work as I have it .</p>