【发布时间】:2016-12-06 19:02:41
【问题描述】:
我必须对必须动态创建的多个表单进行表单验证。我已经使用 ng-repeat 动态创建了表单 但我无法在控制器中访问该表单。
请检查代码:
<button ng-click="navigate()">Next</button>
<div ng-repeat="service in services">
<ng-form name="mainform">
<div ng-repeat="spec in service.products">
<ng-form name="subform">
<input type="text" name="{{spec.name}}" ng-model="spec.value">
<span ng-show="subform[spec.name].$invalid">please enter</span>
</ng-form>
</div>
</ng-form>
</div >
它工作正常,但我需要在单击下一步按钮后检查主窗体的至少一个子窗体是否有效,因此我尝试在控制器中访问它,如下所示:
$scope.navigate=function(){
console.log($scope.mainform.subform);
console.log($scope.subform);
}
但我得到undefined 用于两个控制台日志。如何在控制器中访问多个动态创建的表单?
【问题讨论】:
-
不应该是
<ng-form [name="mainform"]>吗? -
你想在控制器中对这些表单做什么?
-
我想在控制器中检查至少任何一个主窗体在子窗体中具有所有有效数据
-
这可能是HTML disallows nested forms....的原因之一。
标签: javascript angularjs forms validation