如何在AngularJS

时间:2015-12-02 12:33:49

标签: angularjs validation input

我遇到过以下问题:
我有<table>,其中<tr>是通过ng-repeat生成的,每个<tr>包含多个<input>元素。像这样的Smth:

<table>
  <tr ng-repeat="plan in plans">
    <td>
      <input ng-pattern="/^\d+((\.|\,)\d+)?$/" ng-model="plan.field1" ng-blur="updateRow(plan)">
    </td>
    <td>
      <input ng-pattern="/^\d+((\.|\,)\d+)?$/" ng-model="plan.field2" ng-blur="updateRow(plan)">
    </td>    
  </tr>
</table>

当用户完成编辑输入时,我想要更新完整行。但我想只在此输入有效时才这样做。我的意思是我只有在满足条件updateRow(plan)时才执行ng-pattern="/^\d+((\.|\,)\d+)?$/"。或者也许以某种方式在updateRow()内检查它。但我无法找到一种没有形式的方法。

1)有办法吗?或者可能有更好的方法来实现我的想法? 2)还有办法将ng-blur绑定到一行中的每个输入吗?因为我连续有大约20个输入,当有这么多重复时它看起来很糟糕。

感谢所有人提前!

1 个答案:

答案 0 :(得分:0)

所以我通过使用表单和ng-form解决了第一个问题。我将每个tr元素放在单独的tbody中,并将ng-form应用于每个tbody元素。 所以我相信如果我需要验证,我必须使用表格。