AngularJS: ng-if проверяет значение модели, но значение модели ввода устанавливается только в том случае, если вход $ valid

Вот что я хотел бы сделать:

У меня есть форма с двумя входами, один тип «электронная почта», а другой тип «пароль».В $ scope есть объект с именем formОба входа имеют директиву ng-model (ng-model = "form.input_name")Я хочу, чтобы значок появлялся рядом со входом, только если что-то напечатано на входеК этому значку прикреплено действие, чтобы очистить ввод (используя директиву angularjs hammer 'ng-tap').Чтобы проверить, установлен ли ввод и сделать ли иконку видимой, я использую ng-if = "form.input_name.length> 0".Дело в том, что значение модели ввода устанавливается только в том случае, если введено значение $ valid, поэтому для моего ввода по электронной почте значок отображается только в том случае, если то, что набрано на вводе, имеет допустимый формат электронной почты ([email protected]).

Есть ли способ проверить значение представления ввода в ng-if или есть лучшее решение для появления иконки?

Вот код, который я использую (с пропущенными классами CSS):

-HTML:

<form name="form-login">
  <input placeholder="email" type="email" ng-model="form.email" required>
  <i hm-tap="clearContent('email')",ng-if="form.email.length>0">

  <input placeholder="password" type="email" ng-model="form.passwd" required>
  <i hm-tap="clearContent('passwd')",ng-if="form.passwd.length>0">
</form>   

-функция очистки ввода в coffeescript

$scope.clearContent = (fieldName) ->
      switch fieldName
        when 'passwd' then $scope.form.passwd = ""
        when 'email' then $scope.form.email = "" 

Это прекрасно работает для ввода пароля (так как он не имеет проверки). Спасибо за чтение.

Ответы на вопрос(1)

Ваш ответ на вопрос