angular.module.ng.$compileProvider.directive.input.email

Description

Text input with email validation. Sets the email validation error key if not a valid email address.

Usage

<input type="email"
       ng-model="{string}"
       [name="{string}"]
       [required]
       [ng-minlength="{number}"]
       [ng-maxlength="{number}"]
       [ng-pattern="{string}"]>

Parameters

Example

 <script>
   function Ctrl($scope) {
     $scope.text = 'me@example.com';
   }
 </script>
   <form name="myForm" ng-controller="Ctrl">
     Email: <input type="email" name="input" ng-model="text" required>
     <span class="error" ng-show="myForm.input.$error.required">
       Required!</span>
     <span class="error" ng-show="myForm.input.$error.email">
       Not valid email!</span>
     <tt>text = {{text}}</tt><br/>
     <tt>myForm.input.$valid = {{myForm.input.$valid}}</tt><br/>
     <tt>myForm.input.$error = {{myForm.input.$error}}</tt><br/>
     <tt>myForm.$valid = {{myForm.$valid}}</tt><br/>
     <tt>myForm.$error.required = {{!!myForm.$error.required}}</tt><br/>
     <tt>myForm.$error.email = {{!!myForm.$error.email}}</tt><br/>
   </form>
  it('should initialize to model', function() {
    expect(binding('text')).toEqual('me@example.com');
    expect(binding('myForm.input.$valid')).toEqual('true');
  });

  it('should be invalid if empty', function() {
    input('text').enter('');
    expect(binding('text')).toEqual('');
    expect(binding('myForm.input.$valid')).toEqual('false');
  });

  it('should be invalid if not email', function() {
    input('text').enter('xxx');
    expect(binding('myForm.input.$valid')).toEqual('false');
  });