Here's what I'd like to do:
- I have a form with two inputs one is type email and the other is type password.
- There's an object called form in the $scope
- Both inputs have ng-model directive (ng-model=form.input_name)
- I wanna make an icon appear next to the input only if something's typed in the input
- That icon has an action attached to clear the input (using angularjs hammer's directive 'ng-tap').
- To check if the input is set and make the icon appear I use ng-if=form.input_name.length>0.
- The thing is, the model value of the input is only set if the input is $valid, so for my email input the icon only appears if what's typed on the input has a valid email format ([email protected]).
Is there a way to check the view value of the input on the ng-if or is there a better solution for making the icon appear?
Here's the code i'm using(with css classes omitted):
-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>
-function to clear input in coffeescript
$scope.clearContent = (fieldName) ->
switch fieldName
when 'passwd' then $scope.form.passwd =
when 'email' then $scope.form.email =
This works fine for the password input (since it has no validation).
Thanks for reading.