Eu tenho o seguinte:
<div>{{modal.title}}</div>
Existe uma maneira de limitar o comprimento da string para dizer 20 caracteres?
E uma pergunta ainda melhor seria: existe uma maneira de alterar a string a ser truncada e mostrar ...
no final se tiver mais de 20 caracteres?
angularjs
filter
angularjs-filter
Alan2
fonte
fonte
Respostas:
Editar A versão mais recente do filtro de
AngularJS
ofertaslimitTo
.Você precisa de um filtro personalizado como este:
Uso:
Opções:
Outra solução : http://ngmodules.org/modules/angularjs-truncate (por @Ehvince)
fonte
Aqui está a correção simples de uma linha sem css.
fonte
'...'
você também pode usar a entidade HTML para reticências:'…'
Sei que está atrasado, mas na versão mais recente do angularjs (estou usando a 1.2.16), o filtro limitTo suporta seqüências de caracteres, bem como matrizes, para que você possa limitar o comprimento da sequência dessa maneira:
que produzirá:
fonte
Você pode simplesmente adicionar uma classe css à div e adicionar uma dica de ferramenta via angularjs para que o texto aparado fique visível ao passar o mouse.
fonte
ng-repeat
.Eu tive um problema semelhante, aqui está o que eu fiz:
fonte
fonte
Solução mais elegante:
HTML:
Código angular:
Demo:
http://code-chunk.com/chunks/547bfb3f15aa1/str-limit-implementation-for-angularjs
fonte
input
valor seja dinâmico? ieif (!input) {return;}
Caso contrário, haverá erros de console JSComo precisamos de reticências somente quando o comprimento da string estiver acima do limite, parece mais apropriado adicionar reticências usando do
ng-if
que binding.fonte
Existe uma opção
fonte
A solução mais simples que encontrei para limitar o comprimento da string foi
{{ modal.title | slice:0:20 }}
e, depois, pedir emprestado ao @Govan acima, você pode{{ modal.title.length > 20 ? '...' : ''}}
adicionar os pontos de suspensão se a string for maior que 20; portanto, o resultado final é simplesmente:{{ modal.title | slice:0:20 }}{{ modal.title.length > 20 ? '...' : ''}}
https://angular.io/docs/ts/latest/api/common/index/SlicePipe-pipe.html
fonte
Aqui está um filtro personalizado para truncar texto. É inspirado na solução do EpokK, mas modificado para minhas necessidades e gostos.
E aqui estão os testes de unidade para que você possa ver como ele deve se comportar:
fonte
Você pode limitar o comprimento de uma sequência ou matriz usando um filtro. Confira este escrito pela equipe do AngularJS.
fonte
Em html é usado junto com o filtro limitTo fornecido pelo próprio angular como abaixo ,
filter keepDots:
fonte
Se você quiser algo como: InputString => StringPart1 ... StringPart2
HTML:
Código angular:
Exemplo com os seguintes parâmetros:
beginLimit = 10
endLimit = 20
Antes : - /home/house/room/etc/ava_B0363852D549079E3720DF6680E17036.jar
Depois : - /home/hous...3720DF6680E17036.jar
fonte
fonte
Isso pode não ser do final do script, mas você pode usar o css abaixo e adicionar esta classe à div. Isso truncará o texto e também mostrará o texto completo ao passar o mouse. Você pode adicionar mais texto e adicionar um hadler de clique angular para alterar a classe de div no cli
fonte
Se você tem duas ligações
{{item.name}}
e{{item.directory}}
.E deseja mostrar os dados como um diretório seguido pelo nome, assumindo '/ root' como o diretório e 'Machine' como o nome (/ root-machine).
fonte
Você pode usar este módulo npm: https://github.com/sparkalow/angular-truncate
Injete o filtro truncado no seu módulo de aplicativo da seguinte maneira:
e aplique o filtro no seu aplicativo da seguinte maneira:
fonte
fonte
Eu criei essa diretiva que faz isso facilmente, trunca a string até um limite especificado e adiciona uma opção "mostrar mais / menos". Você pode encontrá-lo no GitHub: https://github.com/doukasd/AngularJS-Components
pode ser usado assim:
Aqui está a diretiva:
E algum CSS para acompanhar:
fonte
Esta solução é puramente usando ng marca no HTML.
A solução é limitar o texto longo exibido com o link 'mostrar mais ...' no final. Se o usuário clicar no link 'mostrar mais ...', ele mostrará o restante do texto e removerá o link 'mostrar mais ...'.
HTML:
fonte
A SOLUÇÃO MAIS FÁCIL -> que encontrei é deixar o Design de Materiais (1.0.0-rc4) fazer o trabalho. O
md-input-container
fará o trabalho para você. Concatiza a string e adiciona elipses, além de ter a vantagem extra de permitir que você clique nela para obter o texto completo, para que fique toda preenchida. Pode ser necessário definir a largura domd-input-container
.HTML:
CS:
fonte
Limitar o número de palavras com um filtro Angular personalizado: Aqui está como eu usei um filtro Angular para limitar o número de palavras exibidas usando um filtro personalizado.
HTML:
Código Angular / Javascript
fonte
Funciona bem para mim 'In span', ng-show = "MyCtrl.value. $ ViewValue.length> your_limit" ... leia mais. 'extensão final'
fonte
Eu uso um bom conjunto de bibliotecas de filtros úteis "Angular-filter" e uma delas chamada "truncate" também é útil.
https://github.com/a8m/angular-filter#truncate
o uso é:
fonte