使用AngularJS,我正在尝试从json动态构建表单。
小提琴:http://jsfiddle.net/586pB/2/
你可以在小提琴中看到:
但是,输入验证不起作用。
ng-class="{ 'has-error' : entryForm[field.id].$invalid && !entryForm[field.id].$pristine }"
当代码不在循环中时,此代码正在运行:entryForm.title.$invalid
。但不是这种语法:entryForm[field.id].$invalid
感谢您的帮助。
编辑:已解决 在这里找到我的答案:https://github.com/angular/angular.js/issues/1404 每个表单组现在都是一个表单,每个输入都有一个静态名称。
答案 0 :(得分:0)
如果要为表单中的所有输入字段添加错误样式(如果表单上的数据不正确),您可以执行下一步:
ng-class="{ 'has-error' : entryForm.$invalid}"
而不是
ng-class="{ 'has-error' : entryForm[field.id].$invalid }"
我使用正确的验证和按钮禁用来更新您的jsfiddle。
<强>更新强> 的 JSFiddle 强>
答案 1 :(得分:0)
在angularJS中,您的表单在ng-repeat之前被解析。
因此,您的所有表单输入控件都会使用名称'{{field.id}}'进行注册,而不是像标题或位置这样的原始值。这就是为什么错误类的条件没有验证的原因。
要解决此问题,您可以使用字段数据创建自定义指令。