AngularJS ng禁用,不在内部工作<;td>;要素

AngularJS ng禁用,不在内部工作<;td>;要素,angularjs,validation,Angularjs,Validation,我有一个名为rtpUniqueWeatherSetting的属性指令,它应用一个$validator来检查数组的唯一性。以下是观点: <form name="newform"> <div> Form is valid: {{newform.$valid}} </div> <td> <input type="submit" ng-disabled="newf

我有一个名为rtpUniqueWeatherSetting的属性指令,它应用一个$validator来检查数组的唯一性。以下是观点:

    <form name="newform">
        <div>
          Form is valid: {{newform.$valid}}
        </div>
      <td>
        <input type="submit" ng-disabled="newform.$invalid"
               class="btn btn-primary" ng-click="saveNew()"
               value="Submit" />
        <button class="btn btn-default" ng-click="cancelNew()">Cancel</button>
      </td>
      <td>
        <input required rtp-unique-weather-setting type="number" ng-model="newSetting[fromProp]" name="newSettingFrom" />
      </td>
      <td>
        <input required type="number" ng-model="newSetting[rankProp]" name="newSettingRank" />
      </td>
    </form>

我有一个
$watch
正在观察ngModelController。$invalid prop,我正在将值传递给控制台。长话短说,验证器工作正常,只要需要,$invalid属性就会被设置为true,反之亦然。不过,ng disabled似乎并不像我所说的那样有效。

如果您认为td会导致问题,请尝试下面的方法

不要使用td而使用div并为该div应用cssdisplay:table cell

要使对齐到中心,请使用css

{
    display: table-cell;
    vertical-align: middle;
    text-align: center;

}

如果自定义验证器导致了问题,您应该向我们展示该代码。我的错。我添加了它。console.logs似乎正在按预期返回值。我现在唯一的线索是,不知何故,范围变得混乱,模型没有添加到public formController?您使用的是
ng repeat
?这是否会导致输入的
名称
属性重复?有一个
ng repeat
,但它位于带有此表单的属性上方的
。名称属性也不同。
元素唯一允许的父元素是
元素。有关详细信息,请参阅。
{
    display: table-cell;
    vertical-align: middle;
    text-align: center;

}