diff --git a/src/ng/directive/input.js b/src/ng/directive/input.js index 4e77397878dd..55299e8357b3 100644 --- a/src/ng/directive/input.js +++ b/src/ng/directive/input.js @@ -509,8 +509,8 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) { // min length validator if (attr.ngMinlength) { - var minlength = int(attr.ngMinlength); var minLengthValidator = function(value) { + var minlength = int(attr.ngMinlength); return validate(ctrl, 'minlength', ctrl.$isEmpty(value) || value.length >= minlength, value); }; @@ -520,8 +520,8 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) { // max length validator if (attr.ngMaxlength) { - var maxlength = int(attr.ngMaxlength); var maxLengthValidator = function(value) { + var maxlength = int(attr.ngMaxlength); return validate(ctrl, 'maxlength', ctrl.$isEmpty(value) || value.length <= maxlength, value); }; diff --git a/test/ng/directive/inputSpec.js b/test/ng/directive/inputSpec.js index 26abceae1cfe..7b2cfd9ce049 100644 --- a/test/ng/directive/inputSpec.js +++ b/test/ng/directive/inputSpec.js @@ -733,6 +733,21 @@ describe('input', function() { changeInputValueTo('aaa'); expect(scope.value).toBe('aaa'); }); + + + it('should be updatable via binding', function(){ + scope.boundLength = 3; + compileInput(''); + + changeInputValueTo('aaaa'); + expect(scope.value).toBe('aaaa'); + + scope.boundLength = 6; + scope.$digest(); + changeInputValueTo('aabb'); // TODO: this shouldn't need to changed to invalidate, but is (?) + + expect(scope.value).toBeUndefined(); + }); }); @@ -747,6 +762,20 @@ describe('input', function() { changeInputValueTo('aaa'); expect(scope.value).toBe('aaa'); }); + + + it('should be updatable via binding', function(){ + scope.boundLength = 6; + compileInput(''); + + changeInputValueTo('aaaa'); + expect(scope.value).toBe('aaaa'); + + scope.boundLength = 3; + scope.$digest(); + changeInputValueTo('aaab'); // TODO: this shouldn't need to changed to invalidate, but is (?) + expect(scope.value).toBeUndefined(); + }); });