JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.0/angular.min.js"></script>
  <body ng-app="app">
    <h2>Angular 1.3.0-rc</h3>
    Number validator:<br />
    <form name="form">
      <input type="text" 
        name="number" 
        ng-model="number"
        number 
        min-number="1" 
        max-number="2" />
      <br />
      $error={{form.number.$error|json}}
    </form>
  </body>

JavaScript

angular.module('app', [])
    .directive('number', function () {
        return {
            require: 'ngModel',
            link: function (scope, elem, attrs, ctrl) {

                // valid number
                ctrl.$parsers.push(function (value) {
                    var valid = angular.isUndefined(value) || value === '' || isFinite(value);
                    ctrl.$setValidity('number', valid);
                    return valid
                        ? angular.isUndefined(value) || value === '' ? undefined : Number(value)
                        : undefined;
                });

                ctrl.$parsers.push(function (value) {
                    if (!angular.isDefined(attrs.minNumber)) {
                        return value;
                    }
                    var valid = angular.isUndefined(value) || Number(value) >= Number(attrs.minNumber);
                    ctrl.$setValidity('minNumber', valid);
                    return valid ? value : undefined;
                });

                ctrl.$parsers.push(function (value) {
                    if (!angular.isDefined(attrs.maxNumber)) {
                        return value;
                    }
                    var valid = angular.isUndefined(value) || Number(value) <= Number(attrs.maxNumber);
                    ctrl.$setValidity('maxNumber', valid);
                    return valid ? value : undefined;
                });
            }
        };
    });