我正在构建一个 Angular 表单,它需要在一个内部可重复的表单元素ngRepeat
.
<form name="form">
<div ng-repeat="x in [1,2,3,4]">
<input name="something_{{$index}}" ng-model="hi" required>
<div ng-messages="form.something_{{$index}}.$error">
<ng-message="required">This is required</ng-message>
</div>
</div>
<pre>{{form | json: 4}}</pre>
</form>
Angular 现在支持动态声明input
名称,这样您就不必执行以下操作:
<div ng-repeat="x in [1,2,3,4] ng-form="repeated-form"></div>
你可以使用{{$index}}
在 - 的里面ngRepeat
动态声明项目。但这似乎不适用于ngMessages
,当我尝试将索引绑定到其中时,它会引发错误。
即这个:
<div ng-messages="form.something_{{$index}}.$error">
抛出这个:
Error: [$parse:syntax] Syntax Error: Token '{' is an unexpected token at column 16 of the expression [form.something_{{$index}}.$error] starting at [{{$index}}.$error].
如果 ng-messages 无法监视使用其 {{$index}} 声明的表单值,我们如何动态声明要监视的表单上的哪个属性?
PLNKR: http://plnkr.co/edit/4oOasbtffTgKqmxcppUG?p=preview http://plnkr.co/edit/4oOasbtffTgKqmxcppUG?p=preview(检查控制台)