Text input with email validation. Sets the email validation error key if not a valid email
address.
input[email] uses a regex to validate email addresses that is derived from the regex
used in Chromium. If you need stricter validation (e.g. requiring a top-level domain), you can
use ng-pattern or modify the built-in validators (see the Forms guide)
<input type="email"
       ng-model="string"
       [name="string"]
       [required="string"]
       [ng-required="string"]
       [ng-minlength="number"]
       [ng-maxlength="number"]
       [pattern="string"]
       [ng-pattern="string"]
       [ng-change="string"]>
| Param | Type | Details | 
|---|---|---|
| ngModel | string | 
         Assignable angular expression to data-bind to.  | 
    
| 
        name
        
         (optional) 
       | 
      string | 
         Property name of the form under which the control is published.  | 
    
| 
        required
        
         (optional) 
       | 
      string | 
         Sets   | 
    
| 
        ngRequired
        
         (optional) 
       | 
      string | 
         Adds   | 
    
| 
        ngMinlength
        
         (optional) 
       | 
      number | 
         Sets   | 
    
| 
        ngMaxlength
        
         (optional) 
       | 
      number | 
         Sets   | 
    
| 
        pattern
        
         (optional) 
       | 
      string | 
         Similar to   | 
    
| 
        ngPattern
        
         (optional) 
       | 
      string | 
         Sets   | 
    
| 
        ngChange
        
         (optional) 
       | 
      string | 
         Angular expression to be executed when input changes due to user interaction with the input element.  | 
    
<script>
  angular.module('emailExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.email = {
        text: 'me@example.com'
      };
    }]);
</script>
  <form name="myForm" ng-controller="ExampleController">
    <label>Email:
      <input type="email" name="input" ng-model="email.text" required>
    </label>
    <div role="alert">
      <span class="error" ng-show="myForm.input.$error.required">
        Required!</span>
      <span class="error" ng-show="myForm.input.$error.email">
        Not valid email!</span>
    </div>
    <tt>text = {{email.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>
    var text = element(by.binding('email.text'));
var valid = element(by.binding('myForm.input.$valid'));
var input = element(by.model('email.text'));
it('should initialize to model', function() {
  expect(text.getText()).toContain('me@example.com');
  expect(valid.getText()).toContain('true');
});
it('should be invalid if empty', function() {
  input.clear();
  input.sendKeys('');
  expect(text.getText()).toEqual('text =');
  expect(valid.getText()).toContain('false');
});
it('should be invalid if not email', function() {
  input.clear();
  input.sendKeys('xxx');
  expect(valid.getText()).toContain('false');
});