2015-04-27 9 views
0
<label>Integer</label> 
<input type="text" ng-model="uForm.int" required name="int" 
     int-validator ng-model-options="{updateOn: 'blur'}"> 

<div ng-messages="myForm.int.$error"> 
<div ng-message="required">This is required</div> 
<div ng-message="uIntVal">This is Invalid</div> 
</div> 

Для вышеуказанной разметки сообщение required всегда отображается, когда представление инициализировано.Почему требуется ng-сообщение, даже если updateOn настроено на размытие?

Угловая 1,4

+0

Я думаю updateOn [событие] влияет на значения модели (uForm.int) не образуют проверку действительности, что вам нужно также проверить форму не первозданный, ака грязный ng-if = 'formName.inputName. $ dirty' – alou

ответ

1

можно добавить нг-если в начальный DIV,

<div ng-messages="myForm.int.$error" ng-if="myForm.int.$dirty"> 
<div ng-message="required">This is required</div> 
<div ng-message="uIntVal">This is Invalid</div> 
</div> 

посмотреть Plunkr.

Я попытался добавить оператор AND (&&) в выражение, но это не работает, поэтому я нашел this link, и это работает.

Ниже не работал для меня ...

<div ng-messages="myForm.int.$error && myForm.int.$dirty"> 
<div ng-message="required">This is required</div> 
<div ng-message="uIntVal">This is Invalid</div> 
</div> 
+0

Yup! Даже я попробовал &&, и это не сработало. Ваше решение работает, и я попробовал его, прежде чем публиковать этот вопрос здесь. Я хочу знать, почему он не работает, когда установлены ng-model-options? – InfinitePrime