AngularJS $在ng-repeat

时间:2017-10-04 15:12:52

标签: angularjs forms validation

我试图在没有任何提交的情况下实现自动表单验证。出于这个原因,我在表单中添加了$ watch。

$scope.$watch('myForm.$valid', function(newVal, oldVal) {
    console.log('watching....');
    /*
      If valid 
      perform action
    */
  });

我的表单结构是:

<ul ng-controller="Ctrl">
    <li ng-repeat='user in userList track by $index'>
      <p>
        User {{$index+1}}: {{user.userType}} <br/>
        Designation: {{user.designation}}
      </p>
      <form name="myForm" class="my-form">
        <label>Age?:</label>
        <input name="userAge" type="number" ng-model="user.age" required/>
      </form>
    </li>
    <button style="margin-top:20px;" type="button" ng-click="addUser()">Add more user</button>
  </ul>

我可以点击Add more user按钮创建多个表单。我的表单位于userList

$scope.userList = [
    {
    userType: 'Doctor',
    designation: 'Sr. cardiologist'
    }
  ]

Plunker

问题 如果表单有效/无效,我无法在我的观察者中打印console.log()。它仅在页面加载期间打印。但是如果我对表单进行了任何更改,它就不会显示任何控制台打印。

但如果我将表格保留在ng-repeat范围之外,它就可以了。它根据有效性打印控制台项目。

**那么为什么它不能在ng-repeat中工作?**如何检查我创建的表单是否有效。我能做些什么才能让它发挥作用? 任何建议或示例将不胜感激

0 个答案:

没有答案