limiteNumerosMax-directive.js 860 Bytes
angular.module('focaDirectivas')
    .directive('limiteNumerosMax', function(){
        return {
            require: 'ngModel',
            scope: true,
            link: function(scope, element, attr, ngModel) {
                ngModel.$parsers.push(function (value) {
                    return '' + value;
                });

                if (!ngModel) return;
                function limiteNumerosMax(texto) {
                    if (texto) {
                        texto = texto.replace(/^0-9]/g, '')
                                    .substring(0,attr.limiteNumerosMax);

                        ngModel.$setViewValue(texto);
                        ngModel.$render();
                        return texto;
                    }
                }
                    ngModel.$parsers.push(limiteNumerosMax);
                }
        };
    });