我想在表单上显示验证错误,在表单上使用ng-repeat生成一些元素。我不确定为什么它不能正常工作。
<form id="myForm" name="myForm">
<div ng-repeat="i in items">
<input type="text" name="myElem.inner[$index].result" ng-model="item.result" />
<label ng-show="myForm.myElem.inner[$index].result.$error.required">Error...</label>
</div>
</form>
我也尝试为{{myForm.myElem.inner [$ index] |生成json。 json}}但它返回空。如何解决这个问题?
答案 0 :(得分:1)
在ng-repeat
表单中,验证需要以不同方式完成。 name
属性应该是字符串,它不能是表达式,也不能进行插值。
在ng-repeat
的情况下,您必须执行嵌套表单。由于html中不允许使用嵌套表单,因此需要使用ng-form
指令。然后代码看起来像
<form id="myForm" name="myForm">
<div ng-repeat="item in items">
<ng-form name="itemForm">
<input type="text" name="name" ng-model="item.result" />
<label ng-show="itemForm.name.$error.required">Error...</label>
</ng-form>
</div>
</form>
请参阅ngForm文档https://code.angularjs.org/1.2.15/docs/api/ng/directive/ngForm。