Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 循环中的输入验证不起作用_Angularjs_Validation_Angularjs Ng Repeat - Fatal编程技术网

Angularjs 循环中的输入验证不起作用

Angularjs 循环中的输入验证不起作用,angularjs,validation,angularjs-ng-repeat,Angularjs,Validation,Angularjs Ng Repeat,使用AngularJS,我试图从json动态构建表单 小提琴: 你可以在小提琴上看到: 生成表单是可以的 自动禁用提交按钮正常 但是,输入验证不起作用 ng类={'has error':entryForm[field.id]。$invalid&&!entryForm[field.id]。$pristine} 此代码不在循环中时有效:entryForm.title.$invalid。但不能使用以下语法:entryForm[field.id]。$invalid 谢谢你的帮助 编辑:已解决 我在这里找

使用AngularJS,我试图从json动态构建表单

小提琴:

你可以在小提琴上看到:

生成表单是可以的 自动禁用提交按钮正常 但是,输入验证不起作用

ng类={'has error':entryForm[field.id]。$invalid&&!entryForm[field.id]。$pristine}

此代码不在循环中时有效:entryForm.title.$invalid。但不能使用以下语法:entryForm[field.id]。$invalid

谢谢你的帮助

编辑:已解决 我在这里找到了答案:
每个表单组现在都是一个表单,每个输入都有一个静态名称。

如果要在表单中的所有输入字段中添加错误样式(如果表单上的数据不正确),则可以执行以下操作:

ng-class="{ 'has-error' : entryForm.$invalid}" 
反而

ng-class="{ 'has-error' : entryForm[field.id].$invalid }"
我使用正确的验证和按钮禁用来更新您的JSFIDLE

更新:

在angularJS中,表单在重复ng之前被解析

因此,所有表单输入控件都以名称“{field.id}}”而不是其原始值(如title或position)获取寄存器。这就是为什么错误类的条件没有得到验证


要解决此问题,您可以使用字段数据创建自定义指令。

我希望对每个字段进行验证。用户需要知道哪个字段是无效的。@odupont,我根据您的评论更新了JSFIDLE,请查看。更好,但对于引导,我希望表单组元素上有错误类。我想我会遵循一个指令。谢谢,但我在这里找到了一个更好的解决方案:可能的副本