Validation 动态创建表单的验证(AngularJS)

Validation 动态创建表单的验证(AngularJS),validation,angularjs,Validation,Angularjs,我尝试使用验证创建嵌套表单。所有这些都可以正常工作,但当我删除其中一个嵌套表单时,验证将继续使用删除的表单。我做了一个JSFIDLE示例 当示例运行时,表单是有效的。如果单击“+”按钮,则将添加嵌套表单,并且“有效”将为false。然后点击“-”按钮,valid仍然为false 问题是:如何从验证处理中删除动态创建的表单 其次,您不应该从控制器内部进行DOM操作。控制器用于“业务”逻辑 对于您正在做的事情,您可能最好使用一个表单,其中包含一个ng repeat,并向数组中添加其他元素: <

我尝试使用验证创建嵌套表单。所有这些都可以正常工作,但当我删除其中一个嵌套表单时,验证将继续使用删除的表单。我做了一个JSFIDLE示例

当示例运行时,表单是有效的。如果单击“+”按钮,则将添加嵌套表单,并且“有效”将为false。然后点击“-”按钮,valid仍然为false

问题是:如何从验证处理中删除动态创建的表单

其次,您不应该从控制器内部进行DOM操作。控制器用于“业务”逻辑

对于您正在做的事情,您可能最好使用一个表单,其中包含一个ng repeat,并向数组中添加其他元素:

<form name="myForm" ng-controller="FormCtrl" ng-submit="doSomething()">
   <div ng-repeat="item in items">
      <input ng-model="item" type="text" required/>
   </div>
   <a ng-click="addItem()">+</a>
   <a ng-click="removeItem()">-</a>
   <button type="submit">Submit</button>
   <div>Form valid: {{myForm.$valid}}</div>
</form>

这只是一个例子。在现实世界中,我有一个大规模的应用程序。通过ng重复在表单中添加表单。我必须把我的表格移到主表格的外面。现在我有了一个很好的逻辑,比如移动平台上的视图堆栈。所有这些都是因为必须编辑主项中包含的项(编辑FK链接行)。
function FormCtrl($scope) {
   $scope.items = [];
   $scope.addItem = function() { 
       $scope.items.push(null);
   };
   $scope.removeItem = function() {
       $scope.items.pop();
   };
   $scope.doSomething = function () {
       //your submission stuff goes here.
   };
}