2013-03-25 29 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