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 = ""
Это прекрасно работает для ввода пароля (так как он не имеет проверки). Спасибо за чтение.