验证由ng-repeat生成的元素

时间:2014-10-16 11:35:51

标签: angularjs

我想在表单上显示验证错误,在表单上使用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}}但它返回空。如何解决这个问题?

1 个答案:

答案 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