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

Description

Standard HTML text input with angular data binding.

Usage

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

Parameters

Example

 <script>
   function Ctrl($scope) {
     $scope.text = 'guest';
     $scope.word = /^\w*$/;
   }
 </script>
 <form name="myForm" ng-controller="Ctrl">
   Single word: <input type="text" name="input" ng-model="text"
                       ng-pattern="word" required>
   <span class="error" ng-show="myForm.input.$error.required">
     Required!</span>
   <span class="error" ng-show="myForm.input.$error.pattern">
     Single word only!</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/>
  </form>
  it('should initialize to model', function() {
    expect(binding('text')).toEqual('guest');
    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 multi word', function() {
    input('text').enter('hello world');
    expect(binding('myForm.input.$valid')).toEqual('false');
  });