Angular: Empty Fiddle

http://angularjs.org/

by Hellfrom

HTML

<div ng-controller="MyCtrl">
  Hello, {{name}}!
    
    <form name="testForm">
        <input name="testInput" ng-model="model.value"  number-only validate-equals="model.compareTo">
        <!--<input name="testInput" ng-model="model.value" numbers-only>-->
            <span ng-show="showError(testForm.testInput, 'equal')">error</span>
    </form>
</div>

JavaScript

var myApp = angular.module('myApp',[])

//двусторонняя проверка и со стороны модели и со стороны клиента
.directive('validateEquals', function() {
    return {
        require: 'ngModel',
        link: function(scope, elm, attrs, ngModelCtrl) {
            function validateEqual(myValue) {
                // console.log(myValue);
                var valid = (myValue === scope.$eval(attrs.validateEquals));
                // console.log(valid);
                // console.log(scope.$eval(attrs.validateEquals));
                ngModelCtrl.$setValidity('equal', valid);
                return valid ? myValue : undefined;
            }
            ngModelCtrl.$parsers.push(validateEqual);
            ngModelCtrl.$formatters.push(validateEqual);
            scope.$watch(attrs.validateEquals, function(newValue, oldValue) {
                 //console.log(attrs.validateEquals);
                //пропускаем инициализацию
                if(newValue!==oldValue){
                    ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue);
                }
            });
        }
    };
})

.directive('numberOnly', function() {
    return {
        require: 'ngModel',
        link: function(scope, elm, attrs, ngModelCtrl) {
                        
           var inputMask = function (inputValue) {
                console.log(inputValue);
                console.log(inputValue + '!');
               var transformedInput;
               if(ngModelCtrl.$pristine === true){
                   transformedInput = inputValue!==undefined && inputValue!=="" ? inputValue.toLowerCase().replace(/\+|\s|_|\|/g, ""):undefined; 
               }else{
                   transformedInput = inputValue!==undefined ? inputValue.toLowerCase().replace(/\+|\s|_|\|/g, ""):undefined; 
               }
                console.log(transformedInput + "!!");
			 if (transformedInput!==inputValue) {
                 console.log('не равно');
                  console.log(transformedInput);
                ...