Existe-t-il un moyen de limiter la longueur de la chaîne à un nombre de caractères? par exemple: je dois limiter la longueur d'un titre à 20 {{ data.title }}
.
Y a-t-il un tuyau ou un filtre pour limiter la longueur?
Existe-t-il un moyen de limiter la longueur de la chaîne à un nombre de caractères? par exemple: je dois limiter la longueur d'un titre à 20 {{ data.title }}
.
Y a-t-il un tuyau ou un filtre pour limiter la longueur?
Deux façons de tronquer le texte en angulaire.
let str = 'How to truncate text in angular';
1. Solution
{{str | slice:0:6}}
Production:
how to
Si vous souhaitez ajouter du texte après la chaîne de tranche comme
{{ (str.length>6)? (str | slice:0:6)+'..':(str) }}
Production:
how to...
2. Solution (Créer un tube personnalisé)
si vous souhaitez créer un tube tronqué personnalisé
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'truncate'
})
export class TruncatePipe implements PipeTransform {
transform(value: string, args: any[]): string {
const limit = args.length > 0 ? parseInt(args[0], 10) : 20;
const trail = args.length > 1 ? args[1] : '...';
return value.length > limit ? value.substring(0, limit) + trail : value;
}
}
Dans le balisage
{{ str | truncate:[20] }} // or
{{ str | truncate:[20, '...'] }} // or
N'oubliez pas d'ajouter une entrée de module.
@NgModule({
declarations: [
TruncatePipe
]
})
export class AppModule {}
return value && value.length > limit ? value.substring(0, limit) + trail : value;
transform(value: string, args: string[]): string
devrait êtretransform(value: string, args: any[]): string
puisque le premier argument donné au tube est un nombre.Tronquer le tuyau avec des paramètres facultatifs :
-
N'oubliez pas d'ajouter une entrée de module.
Usage
Exemple de chaîne:
Balisage:
la source
limit = value.substr(0, 13).lastIndexOf(' ');
devrait êtrelimit = value.substr(0, limit).lastIndexOf(' ');
cependant.if (!value) { return ''; }
etif (value.length <= limit) { return value; }
${value.substr(0, limit)}${ellipsis}
; } `Vous pouvez tronquer du texte basé sur CSS. Il permet de tronquer un texte basé sur la largeur et non le caractère fixe.
Exemple
CSS
HTML
Remarque: ce code utilise plein pour une ligne pas pour plus d'une.
La solution de Ketan est la meilleure si vous voulez le faire par Angular
la source
J'ai utilisé ce module ng2 truncate , son module d'importation assez simple et vous êtes prêt à partir ... dans {{data.title | tronquer: 20}}
la source
Voici une approche alternative utilisant un
interface
pour décrire la forme d'un objet d'options à passer via lepipe
dans le balisage.Puis dans votre balisage:
la source
Très simple à l' aide de tuyaux tranche (de la pipe angulaire de base), comme vous avez demandé
data.title
:À partir de la documentation commune Angular https://angular.io/api/common/SlicePipe
la source
Si vous souhaitez tronquer par un certain nombre de mots et ajouter des points de suspension, vous pouvez utiliser cette fonction:
Exemple:
extrait de: https://github.com/yellowspot/ng2-truncate/blob/master/src/truncate-words.pipe.ts
Si vous voulez tronquer par un certain nombre de lettres mais ne coupez pas les mots, utilisez ceci:
Exemple:
la source
Je viens d'essayer la réponse @Timothy Perez et j'ai ajouté une ligne
à
la source
Essayez celui-ci, si vous souhaitez tronquer en fonction de mots au lieu de caractères tout en permettant également à une option de voir le texte complet.
Je suis venu ici à la recherche d'une solution Read More basée sur des mots , partageant la coutume que
Pipe
j'ai fini par écrire.Tuyau:
Dans le modèle:
Composant:
Dans le module:
la source