2015-10-21 111 views
1

我需要驗證一個輸入,以便它不包含也出現在給定數組字符串中的字符串。驗證基於數組的輸入

要使用一個簡單的例子解釋它,當我輸入城市房子驗證應該失敗。如果有其他字符串,它應該通過。

<input type="text" ng-not-in="r.arr" ... 

r.arr = ["town", "city", "house"] 

我所知道的可能性,如使用$手錶,寫我自己的指令或NG模式(當然,這種情況下,它不適合的),然而,有一些內置的,將做到這一點?如果不是,我應該選擇哪種方法,哪一種是「最乾淨」的?

謝謝

+2

採用NG-改變指令,調用方法和傳遞價值。你可以在那裏比較,並根據你的東西。 – Ved

+0

如果你想把它綁定到表單驗證中,你需要在其中使用一個自定義的'ngModel'驗證器的指令 – charlietfl

回答

1

您可以使用ui-validate from Angular UI。這樣,你就不必寫一個自己的指令每次,而只是使用表達式(見JSfiddle):

<input type="text" ng-model="mod.text" ui-validate="'list.indexOf($value)==-1'"> 
+0

正是我需要的 - 謝謝! – leopik