Quero capitalizar o primeiro caractere da string em angularjs
Como eu usei {{ uppercase_expression | uppercase}}
, converter toda a seqüência de caracteres em maiúsculas.
Quero capitalizar o primeiro caractere da string em angularjs
Como eu usei {{ uppercase_expression | uppercase}}
, converter toda a seqüência de caracteres em maiúsculas.
Respostas:
use este filtro em maiúsculas
fonte
return (angular.isString(s) && s.length > 0) ? s[0].toUpperCase() + s.substr(1).toLowerCase() : s;
. Se não for uma string, retorne-a inalterada.Eu diria que não use angular / js, pois você pode simplesmente usar css:
Em seu css, adicione a classe:
Em seguida, basta agrupar a expressão (por ex) no seu html:
Não é necessário js;)
fonte
:first-letter
seletor de pseudoelementos. Mais alguma coisa descoberta? :)Se você usa o Bootstrap , pode simplesmente adicionar a
text-capitalize
classe auxiliar:EDIT: apenas no caso de o link morrer novamente:
fonte
text-transform: capitalize;
Se você estiver usando Angular 4+, poderá usar apenas
titlecase
não precisa escrever nenhum cachimbo.
fonte
uma maneira melhor
fonte
Se você estiver após o desempenho, tente evitar o uso de filtros AngularJS, pois eles são aplicados duas vezes por cada expressão para verificar sua estabilidade.
Uma maneira melhor seria usar o
::first-letter
pseudoelemento CSS comtext-transform: uppercase;
. Isso não pode ser usado em elementos embutidos, comospan
, portanto, a próxima melhor coisa seria usartext-transform: capitalize;
em todo o bloco, que capitaliza cada palavra.Exemplo:
fonte
::first-letter
não funciona emdisplay: inline
oudisplay: flex
, apenas nodisplay:block
ouinline-block
elementosGosto da resposta de @TrampGuy
CSS é sempre (bem, nem sempre) uma escolha melhor, então:
text-transform: capitalize;
é certamente o caminho a percorrer.Mas e se o seu conteúdo estiver em maiúsculas? Se você experimentar um
text-transform: capitalize;
conteúdo como "FOO BAR", continuará exibindo "FOO BAR" em sua exibição. Para contornar esse problema, você pode colocar otext-transform: capitalize;
em seu css, mas também minúscula sua string, então:onde estamos usando a classe de capitalização de @ TrampGuy:
Então, fingindo que
foo.awsome_property
normalmente imprimiria "FOO BAR", agora será impressa a desejada "Foo Bar".fonte
se você deseja colocar em maiúscula cada palavra da string (em andamento -> Em andamento), pode usar uma matriz como esta.
fonte
Esta é outra maneira:
fonte
Para Angular 2 e superior, você pode usar
{{ abc | titlecase }}
.Verifique a API do Angular.io para obter a lista completa.
fonte
fonte
Para o AngularJS de meanjs.org, coloco os filtros personalizados em
modules/core/client/app/init.js
Eu precisava de um filtro personalizado para colocar em maiúscula cada palavra em uma frase, eis como eu faço isso:
O crédito da função de mapa vai para @Naveen raj
fonte
Em 7+ angular que foi construído com tubo
fonte
Se você não deseja criar um filtro personalizado, pode usar diretamente
fonte
fonte
Apenas para adicionar minha opinião sobre esse assunto, eu mesmo usaria uma diretiva personalizada;
Uma vez declarado, você pode colocar dentro do seu Html como abaixo;
fonte
Em vez disso, se você quiser colocar em maiúscula cada palavra de uma frase, pode usar esse código
e apenas adicione o filtro "capitalize" à sua entrada de string, por ex - {{name | capitalizar}}
fonte
no Angular 4 ou na CLI, você pode criar um PIPE como este:
fonte
Angular tem 'titlecase' que coloca em maiúscula a primeira letra de uma string
Por exemplo:
será exibido como EnvName
Quando usado com interpolação, evite todos os espaços como
e a primeira letra do valor de envName será impressa em maiúsculas.
fonte
fonte
Você pode adicionar o tempo de execução da funcionalidade de capitalização como:
fonte
{{ uppercase_expression | capitaliseFirst}}
Deveria trabalharfonte
Adicionando à resposta de Nidhish,
Para as pessoas que você usa AngularJs e procura colocar em maiúscula a primeira letra de cada palavra na string, use o código abaixo:
fonte