AngularJS: ng-if verificando o valor do modelo, mas o valor do modelo do conjunto de entrada somente se a entrada for $ valida
Aqui está o que eu gostaria de fazer:
Eu tenho um formulário com duas entradas uma é tipo "email" e a outra é tipo "senha".Existe um objeto chamado form no $ scopeAmbas as entradas possuem a diretiva ng-model (ng-model = "form.input_name")Eu quero fazer um ícone aparecer ao lado da entrada apenas se algo for digitado na entradaEsse ícone tem uma ação anexada para limpar a entrada (usando a diretiva angularjs hammer 'ng-tap').Para verificar se a entrada está configurada e fazer o ícone aparecer, eu uso ng-if = "form.input_name.length> 0".A coisa é, o valor do modelo da entrada só é definido se a entrada for $ válida, portanto, para minha entrada de e-mail, o ícone só aparece se o que for digitado na entrada tiver um formato de e-mail válido ([email protected]).Existe uma maneira de verificar o valor de exibição da entrada no ng-if ou existe uma solução melhor para fazer o ícone aparecer?
Aqui está o código que estou usando (com classes css omitidas):
-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>
-função para limpar a entrada no coffeescript
$scope.clearContent = (fieldName) ->
switch fieldName
when 'passwd' then $scope.form.passwd = ""
when 'email' then $scope.form.email = ""
Isso funciona bem para a entrada de senha (desde que não tenha validação). Obrigado pela leitura.