How to autocapitalize the first character in an input field inside an AngularJS form element?
I saw the jQuery solution already, but believe this has to be done differently in AngularJS by using a directive.
Yes, you need to define a directive and define your own parser function:
myApp.directive('capitalizeFirst', function($parse) {    return {      require: 'ngModel',      link: function(scope, element, attrs, modelCtrl) {         var capitalize = function(inputValue) {            if (inputValue === undefined) { inputValue = ''; }            var capitalized = inputValue.charAt(0).toUpperCase() +                              inputValue.substring(1);            if(capitalized !== inputValue) {               modelCtrl.$setViewValue(capitalized);               modelCtrl.$render();             }                      return capitalized;          }          modelCtrl.$parsers.push(capitalize);          capitalize($parse(attrs.ngModel)(scope)); // capitalize initial value      }    }; });   HTML:
<input type="text" ng-model="obj.name" capitalize-first>   Fiddle
Please remember that not everything needs an Angular solution. You see this a lot with the jQuery crowd; they like to use expensive jQuery functions to do things that are simpler or easier to do with pure javascript.
So while you might very well need a capitalize function and the above answers provide that, it's going to be a lot more efficient to just use the css rule "text-transform: capitalize"
<tr ng-repeat="(key, value) in item">     <td style="text-transform: capitalize">{{key}}</td>     <td>{{item}}</td> </tr> 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With