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.