| 29584 | * </example> |
| 29585 | */ |
| 29586 | var maxlengthDirective = function() { |
| 29587 | return { |
| 29588 | restrict: 'A', |
| 29589 | require: '?ngModel', |
| 29590 | link: function(scope, elm, attr, ctrl) { |
| 29591 | if (!ctrl) return; |
| 29592 | |
| 29593 | var maxlength = -1; |
| 29594 | attr.$observe('maxlength', function(value) { |
| 29595 | var intVal = toInt(value); |
| 29596 | maxlength = isNaN(intVal) ? -1 : intVal; |
| 29597 | ctrl.$validate(); |
| 29598 | }); |
| 29599 | ctrl.$validators.maxlength = function(modelValue, viewValue) { |
| 29600 | return (maxlength < 0) || ctrl.$isEmpty(viewValue) || (viewValue.length <= maxlength); |
| 29601 | }; |
| 29602 | } |
| 29603 | }; |
| 29604 | }; |
| 29605 | |
| 29606 | /** |
| 29607 | * @ngdoc directive |