Hey Kamal, ahaaaaaa, so I just shot myself in the foot... Thank you very much for the explanation, I didn't know the validator would actually reject the model value in this way. Turns out it is expected behavior, and I'm not crazy ;)
Thank you very much for clearing this up for me :) cheers, Roland On Thursday, April 24, 2014 6:39:52 PM UTC+2, Kamal wrote: > > Roland, > > Your are not seeing the value in the first input bound to `user.name` > because of validation failure of ng-minlength, if you have the value with > length grater then or equal to 5 it would show it. This is the validation > criteria used by ng-minlenght `ctrl.$isEmpty(value) || value.length >= > minlength` if it fails (in your case it does) the value is set to > `undefined` as per the below validation code from > https://code.angularjs.org/1.2.16/angular.js > > // min length validator >> if (attr.ngMinlength) { >> var minlength = int(attr.ngMinlength); >> var minLengthValidator = function(value) { >> return validate(ctrl, 'minlength', ctrl.$isEmpty(value) || >> value.length >= minlength, value); >> }; >> >> ctrl.$parsers.push(minLengthValidator); >> ctrl.$formatters.push(minLengthValidator); >> } >> >> // max length validator >> if (attr.ngMaxlength) { >> var maxlength = int(attr.ngMaxlength); >> var maxLengthValidator = function(value) { >> return validate(ctrl, 'maxlength', ctrl.$isEmpty(value) || >> value.length <= maxlength, value); >> }; >> >> ctrl.$parsers.push(maxLengthValidator); >> ctrl.$formatters.push(maxLengthValidator); >> } >> >> > > On Thursday, 24 April 2014 20:26:04 UTC+5:30, Roland Zwaga wrote: >> >> Hi there, >> >> I'm busy creating a directive that adds validation directives to its >> contents dynamically, >> so, this directive has a 'priority' of 1000 and 'terminal' set to true. >> That way I can halt compilation, >> add my stuff and invoke $compile() manually, but I have run into some >> behavior that puzzles me. >> >> In short, when I add a ng-minlength directive the ngModel seems to get >> screwed up. >> >> I have created a very simple example in this plunkr: >> >> http://plnkr.co/edit/xtmhZaIQNlp8zsZQYzvQ?p=info >> >> As you'll see, the textinput that has an ng-minlength directive won't >> show the model data. >> However, the other directive, ng-maxlength, works without problems. (As >> have other directives >> I've tried). >> >> I am scratching my head over this and I really hope someone can explain >> what I'm doing >> wrong here... >> >> thanks a lot in advance, >> >> Roland Zwaga >> > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
