Chcę użyć pierwszej litery ciągu w angularjs
Jak użyłem {{ uppercase_expression | uppercase}}
, zamień cały ciąg na duże litery.
Chcę użyć pierwszej litery ciągu w angularjs
Jak użyłem {{ uppercase_expression | uppercase}}
, zamień cały ciąg na duże litery.
Odpowiedzi:
użyj tego filtra z wielkimi literami
źródło
return (angular.isString(s) && s.length > 0) ? s[0].toUpperCase() + s.substr(1).toLowerCase() : s;
. Jeśli nie jest to łańcuch, zwróć go bez zmian.Powiedziałbym, że nie używaj angular / js, ponieważ możesz po prostu użyć css:
W swoim css dodaj klasę:
Następnie po prostu zawiń wyrażenie (na przykład) w swoim html:
Nie potrzeba js;)
źródło
:first-letter
pseudoelementu. Coś jeszcze zostało odkryte? :)Jeśli używasz Bootstrap , możesz po prostu dodać
text-capitalize
klasę pomocniczą:EDYCJA: na wypadek, gdyby link znowu zniknął:
źródło
text-transform: capitalize;
Jeśli używasz Angular 4+, możesz po prostu użyć
titlecase
nie musisz pisać żadnych rur.
źródło
ładniejszy sposób
źródło
Jeśli zależy Ci na wydajności, staraj się unikać filtrów AngularJS, ponieważ są one stosowane dwa razy na każde wyrażenie, aby sprawdzić ich stabilność.
Lepszym sposobem byłoby użycie
::first-letter
pseudoelementu CSS ztext-transform: uppercase;
. Nie można tego użyć w elementach wbudowanych, takich jakspan
jednak, więc następną najlepszą rzeczą byłoby użycietext-transform: capitalize;
na całym bloku, w którym każde słowo jest pisane wielką literą.Przykład:
źródło
::first-letter
nie działa na elementachdisplay: inline
ordisplay: flex
, tylko na elementachdisplay:block
lubinline-block
Podoba mi się odpowiedź od @TrampGuy
CSS jest zawsze (cóż, nie zawsze) lepszym wyborem, więc: z
text-transform: capitalize;
pewnością jest do zrobienia.Ale co, jeśli cała treść jest na początku pisana wielkimi literami? Jeśli wypróbujesz
text-transform: capitalize;
zawartość typu „FOO BAR”, na ekranie nadal pojawi się „FOO BAR”. Aby obejść ten problem, możesz umieścićtext-transform: capitalize;
w swoim css, ale także małe litery, więc:gdzie używamy klasy capitalize @ TrampGuy:
Tak więc, udając,
foo.awsome_property
że normalnie wypisuje „FOO BAR”, wydrukuje teraz żądany „Foo Bar”.źródło
jeśli chcesz zapisywać każde słowo z łańcucha wielkimi literami (w toku -> W toku), możesz użyć takiej tablicy.
źródło
To jest inny sposób:
źródło
W przypadku Angular 2 i nowszych możesz użyć
{{ abc | titlecase }}
.Sprawdź interfejs API Angular.io, aby uzyskać pełną listę.
źródło
źródło
W przypadku AngularJS z meanjs.org niestandardowe filtry umieszczam w
modules/core/client/app/init.js
Potrzebowałem niestandardowego filtra, aby zapisać każde słowo w zdaniu wielkimi literami, oto jak to zrobić:
Funkcja mapy przypisuje się @Naveen raj
źródło
W wersji kątowej 7+ z wbudowaną rurką
źródło
Jeśli nie chcesz tworzyć niestandardowego filtra, możesz użyć go bezpośrednio
źródło
źródło
Aby dodać własne podejście do tej kwestii, sam użyłbym niestandardowej dyrektywy;
Po zadeklarowaniu możesz umieścić w swoim HTML, jak poniżej;
źródło
Zamiast tego, jeśli chcesz zapisywać każde słowo w zdaniu wielką literą, możesz użyć tego kodu
i po prostu dodaj filtr „wielką literą” do tekstu wejściowego, na przykład - {{nazwa | skapitalizować}}
źródło
w Angular 4 lub CLI możesz stworzyć PIPE w ten sposób:
źródło
Angular ma „titlecase”, który zaczyna się wielką literą w ciągu
Na przykład:
będzie wyświetlany jako EnvName
Używając z interpolacją, unikaj wszelkich spacji, takich jak
a pierwsza litera wartości envName zostanie wydrukowana wielkimi literami.
źródło
źródło
Możesz dodać wielkie litery w czasie wykonywania funkcji jako:
źródło
{{ uppercase_expression | capitaliseFirst}}
powinno działaćźródło
Dodając do odpowiedzi Nidhisha,
Dla osób, które używają AngularJs i chcą zacząć wielką literę każdego słowa w ciągu, użyj poniższego kodu:
źródło