AngularJSdynamic表单字段validation
我想validation从后端端点给我的一些表单域…
所以基本上, input元素是在ng-repeat内dynamic创build的。 因此, input属性也是dynamic添加的,例如type , name等等。 
 但是,因为name属性是dynamic添加的,所以当我尝试validation它时,像这样,例如: 
 myForm.elName.$valid 
 它不返回任何东西,因为在这一点上,它不知道elName是什么。 
我创build了一个jsFiddle来演示这个问题: http : //jsfiddle.net/peduarte/HB7LU/1889/
任何帮助或build议将不胜感激!
FANX。
  编辑: 
 我一直在引用这个AWESOME文档: http ://docs.angularjs.org/api/ng.directive: input.email 
试试我的自定义指令:
 myApp.directive("dynamicName",function($compile){ return { restrict:"A", terminal:true, priority:1000, link:function(scope,element,attrs){ element.attr('name', scope.$eval(attrs.dynamicName)); element.removeAttr("dynamic-name"); $compile(element)(scope); } }; }); 
用它:
 <input dynamic-name="field.name" type="{{ field.type }}" placeholder="{{ field.name }}" ng-model="field.value" required> 
DEMO
问题的解释:
 默认情况下,使用ngModelController( ng-model )的input元素调用FormController.$addControl来注册自己,并在FormController上公开一个属性为{{ field.name }} 的input的name属性 。 因此,即使控件已注册,但是您没有在具有指定email FormController上显示属性firstName ,您只有{{ field.name }}引用上一个input项 
解决scheme的解释:
 在这个解决scheme中,我创build了一个自定义指令,以便在运行时用正确的名称replace{{ field.name }} 。 
 有关更多信息,为什么我必须使用terminal:true,和priority:1000 ,请查看此讨论: 在AngularJS中添加指令