当输入名称为数组时,angularjs形式不能引用输入控件

时间:2014-04-21 20:21:29

标签: forms angularjs validation angularjs-directive angularjs-scope

使用angularjs

测试表单验证时遇到问题

根据angularjs form guide

  

具有ngModel指令的输入控件包含NgModelController的实例。可以使用输入控件上的name属性将此类控件实例发布为表单实例的属性。

我在plunker创建了测试代码,一切正常,直到我改变输入名称

<input type="number" name="age" ng-model="user.age" max="100" required>

<p>{{form1.age.$error}}</p>

<input type="number" name="user[age]" ng-model="user.age" max="100" required>

<p>{{form1.user[age].$error}}</p>

这是否意味着angular无法识别表单输入中的数组语法?

对我来说问题是我想保持正常的表单提交流程并且只使用angular进行表单验证,所以我需要将表单输入保持为数组以处理后端表单处理

1 个答案:

答案 0 :(得分:13)

它与Angular无关。这是一个语法JS错误。

如果您想引用名为user[age]的属性,您应该这样做:

form1['user[age]'].$error

form1.user[age]被错误地解释为(form1.user)[age]