Quiero poner en mayúscula el primer carácter de la cadena en angularjs
Como usé {{ uppercase_expression | uppercase}} convierte toda la cadena a mayúsculas.
use este filtro de mayúsculas
var app = angular.module('app', []); app.controller('Ctrl', function ($scope) { $scope.msg = 'hello, world.'; }); app.filter('capitalize', function() { return function(input) { return (angular.isString(input) && input.length > 0) ? input.charAt(0).toUpperCase() + input.substr(1).toLowerCase() : input; } }); <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="app"> <div ng-controller="Ctrl"> <p><b>My Text:</b> {{msg | capitalize}}</p> </div> </div>Yo diría que no use angular/js ya que simplemente puede usar css en su lugar:
En tu css, agrega la clase:
.capitalize { text-transform: capitalize; }Luego, simplemente envuelva la expresión (por ejemplo) en su html:
<span class="capitalize">{{ uppercase_expression }}</span>No se necesita js;)
Si usa Bootstrap , simplemente puede agregar la clase de ayuda text-capitalize :
<p class="text-capitalize">CapiTaliZed text.</p>EDITAR: en caso de que el enlace muera de nuevo:
Transformación de texto
Transforme texto en componentes con clases de capitalización de texto.
texto en minúsculas.
TEXTO EN MAYÚSCULAS.
Texto en mayúsculas.<p class="text-lowercase">Lowercased text.</p> <p class="text-uppercase">Uppercased text.</p> <p class="text-capitalize">CapiTaliZed text.</p>Tenga en cuenta que text-capitalize solo cambia la primera letra de cada palabra, dejando intactas las mayúsculas y minúsculas de cualquier otra letra.