Ich habe folgendes:
<div>{{modal.title}}</div>
Gibt es eine Möglichkeit, die Länge der Zeichenfolge auf 20 Zeichen zu begrenzen?
Und eine noch bessere Frage wäre, gibt es eine Möglichkeit, die Zeichenfolge so zu ändern, dass sie abgeschnitten und ...
am Ende angezeigt wird, wenn sie mehr als 20 Zeichen umfasst?
Antworten:
Bearbeiten Sie die neueste Version von
AngularJS
AngebotenlimitTo
Filter .Sie benötigen einen benutzerdefinierten Filter wie folgt:
Verwendung:
Optionen:
Eine andere Lösung : http://ngmodules.org/modules/angularjs-truncate (von @Ehvince)
quelle
Hier ist die einfache einzeilige Korrektur ohne CSS.
quelle
'...'
können Sie auch die HTML-Entität für Auslassungspunkte verwenden:'…'
Ich weiß, dass dies spät ist, aber in der neuesten Version von anglejs (ich verwende 1.2.16) unterstützt der limitTo-Filter sowohl Strings als auch Arrays, sodass Sie die Länge des Strings wie folgt begrenzen können:
welches ausgegeben wird:
quelle
Sie können dem div einfach eine CSS-Klasse hinzufügen und über anglejs einen Tooltip hinzufügen, damit der zugeschnittene Text mit der Maus darüber angezeigt wird.
quelle
ng-repeat
.Ich hatte ein ähnliches Problem, hier ist was ich getan habe:
quelle
quelle
Elegantere Lösung:
HTML:
Winkelcode:
Demo:
http://code-chunk.com/chunks/547bfb3f15aa1/str-limit-implementation-for-angularjs
quelle
input
Wert dynamisch ist? dhif (!input) {return;}
sonst wird es JS-Konsolenfehler gebenDa wir nur dann Auslassungspunkte benötigen, wenn die Zeichenfolgenlänge über dem Grenzwert liegt, erscheint es angemessener, Auslassungspunkte durch Verwenden
ng-if
als durch Binden hinzuzufügen .quelle
Es gibt eine Option
quelle
Die einfachste Lösung, die ich gefunden habe, um die Saitenlänge einfach zu begrenzen, war
{{ modal.title | slice:0:20 }}
, und dann von @Govan oben zu leihen, können{{ modal.title.length > 20 ? '...' : ''}}
Sie die Aufhängepunkte hinzufügen, wenn die Saite länger als 20 ist. Das Endergebnis lautet also einfach:{{ modal.title | slice:0:20 }}{{ modal.title.length > 20 ? '...' : ''}}
https://angular.io/docs/ts/latest/api/common/index/SlicePipe-pipe.html
quelle
Hier ist ein benutzerdefinierter Filter zum Abschneiden von Text. Es ist von der Lösung von EpokK inspiriert, aber an meine Bedürfnisse und Vorlieben angepasst.
Und hier sind die Unit-Tests, damit Sie sehen können, wie es sich verhalten soll:
quelle
Sie können die Länge einer Zeichenfolge oder eines Arrays mithilfe eines Filters begrenzen. Überprüfen Sie dieses vom AngularJS-Team geschriebene.
quelle
In HTML wird es zusammen mit dem LimitTo-Filter verwendet, der von Angular selbst wie unten bereitgestellt wird .
Filter keepDots:
quelle
Wenn Sie etwas wollen wie: InputString => StringPart1 ... StringPart2
HTML:
Winkelcode:
Beispiel mit folgenden Parametern:
beginLimit = 10
endLimit = 20
Bevor : - /home/house/room/etc/ava_B0363852D549079E3720DF6680E17036.jar
Nach : - /home/hous...3720DF6680E17036.jar
quelle
quelle
Dies ist möglicherweise nicht vom Ende des Skripts, aber Sie können das folgende CSS verwenden und diese Klasse zum div hinzufügen. Dadurch wird der Text abgeschnitten und beim Mouseover wird auch der Volltext angezeigt. Sie können einen weiteren Text hinzufügen und einen eckigen Klick-Hadler hinzufügen, um die Klasse von div auf cli zu ändern
quelle
Wenn Sie zwei Bindungen haben
{{item.name}}
und{{item.directory}}
.Und möchten die Daten als Verzeichnis gefolgt vom Namen anzeigen, wobei '/ root' als Verzeichnis und 'Machine' als Name (/ root-machine) angenommen werden.
quelle
Sie können dieses npm-Modul verwenden: https://github.com/sparkalow/angular-truncate
Fügen Sie den Filter zum Abschneiden folgendermaßen in Ihr App-Modul ein:
und wenden Sie den Filter in Ihrer App folgendermaßen an:
quelle
quelle
Ich habe diese Direktive erstellt, die dies einfach macht, die Zeichenfolge auf ein bestimmtes Limit abschneidet und einen Umschalter "Mehr oder weniger anzeigen" hinzufügt. Sie finden es auf GitHub: https://github.com/doukasd/AngularJS-Components
es kann so verwendet werden:
Hier ist die Richtlinie:
Und ein bisschen CSS dazu:
quelle
Diese Lösung verwendet ausschließlich ng Tag in HTML.
Die Lösung besteht darin, den Langtext zu begrenzen, der am Ende mit dem Link "Mehr anzeigen ..." angezeigt wird. Wenn der Benutzer auf den Link "Mehr anzeigen ..." klickt, wird der Rest des Textes angezeigt und der Link "Mehr anzeigen ..." entfernt.
HTML:
quelle
DIE EINFACHSTE LÖSUNG -> Ich habe festgestellt, dass Material Design (1.0.0-rc4) die Arbeit erledigt. Der
md-input-container
wird die Arbeit für Sie erledigen. Es verkettet die Zeichenfolge und fügt Elipsen hinzu. Außerdem hat es den zusätzlichen Vorteil, dass Sie darauf klicken können, um den vollständigen Text zu erhalten, sodass es sich um die gesamte Enchilada handelt. Möglicherweise müssen Sie die Breite des einstellenmd-input-container
.HTML:
CS:
quelle
Begrenzen Sie die Anzahl der Wörter mit einem benutzerdefinierten Winkelfilter: So habe ich einen Winkelfilter verwendet, um die Anzahl der mit einem benutzerdefinierten Filter angezeigten Wörter zu begrenzen.
HTML:
Winkel- / Javascript-Code
quelle
Es funktioniert in Ordnung für mich 'In span', ng-show = "MyCtrl.value. $ ViewValue.length> your_limit" ... lesen Sie mehr. 'Endspanne'
quelle
Ich benutze einen netten Satz nützlicher Filterbibliothek "Angular-Filter" und eine davon namens "Truncate" ist auch nützlich.
https://github.com/a8m/angular-filter#truncate
Verwendung ist:
quelle