Commit b6f171fafd7f190ae9dfdd8a4f88717f1822866c

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'master'

Master

See merge request !2
src/js/uppercaseOnly-directive.js
1 angular.module('focaDirectivas') 1 angular.module('focaDirectivas')
2 .directive('uppercaseOnly', [ 2 .directive('input', [
3 function() { 3 function() {
4 return { 4 return {
5 restrict: 'A', 5 restrict: 'E',
6 require: 'ngModel', 6 require: '?ngModel',
7 link: function(scope, element, attrs, ctrl) { 7 link: function(scope, element, attrs, ctrl) {
8 8
9 function parser(value) { 9 function parser(value) {
10 if (ctrl.$isEmpty(value)) { 10 if (ctrl.$isEmpty(value)) {
11 return value; 11 return value;
12 } 12 }
13 var formatedValue = value.toUpperCase(); 13 var formatedValue = value.toUpperCase();
14 if (ctrl.$viewValue !== formatedValue) { 14 if (ctrl.$viewValue !== formatedValue) {
15 ctrl.$setViewValue(formatedValue); 15 ctrl.$setViewValue(formatedValue);
16 ctrl.$render(); 16 ctrl.$render();
17 } 17 }
18 return formatedValue; 18 return formatedValue;
19 } 19 }
20 20
21 function formatter(value) { 21 function formatter(value) {
22 if (ctrl.$isEmpty(value)) { 22 if (ctrl.$isEmpty(value) || typeof value !== 'string') {
23 return value; 23 return value;
24 } 24 }
25 return value.toUpperCase(); 25 return value.toUpperCase();
26 } 26 }
27 27
28 ctrl.$formatters.push(formatter); 28 if(attrs.type === 'text') {
29 ctrl.$parsers.push(parser); 29
30 ctrl.$formatters.push(formatter);
31 ctrl.$parsers.push(parser);
32 }
30 } 33 }
31 }; 34 };
32 } 35 }
33 ]); 36 ]);
34 37