2013-03-25 116 views
29

我试图在指令中的元素上使用$setValidity。我发现的所有例子似乎将它设置在控制器上...

我在表单验证上分叉了一个JS小提琴,并尝试了一堆东西。任何见解将是非常赞赏: http://jsfiddle.net/thomporter/pmKpG/2/

在小提琴的$setValidity被称为控制器上:

ctrl.$setValidity('pwd', true); 

我想这样做:

elm.$setValidity('pwd', true); 

使在形式上,我可以这样做:

ng-class="{error:form.password.$error.pwd}" 

回答

60

我想通了......你必须在输入元素上有一个名字。只要我添加名称,错误就会根据需要自动绑定到元素上,不需要额外的更改!

<input ng-model="password" 
     name="inputPassword" 
     class="immediate-help" 
     password-validate 
     required 
     type="password" 
     id="inputPassword" 
     placeholder="Password"> 

http://jsfiddle.net/thomporter/pmKpG/4/

+27

避免像+1或感谢的意见?没门。谢谢! – 2013-09-11 09:34:49

+2

@Thom Porter,你为什么返回undefined而不是假的第22行(​​http://jsfiddle.net/thomporter/pmKpG/4/)? – MaximeBernard 2014-12-01 15:46:26

+3

加一个回答你自己的问题 - 并与他人分享 – Mawg 2016-04-05 12:04:22