AngularJS NG-powtórzenie, przecinek oddzielony znakiem „i” przed ostatnim elementem
Mam listę przedmiotów ...
$scope.Users =[{
UserName: ''
}];
Moim zdaniem chcę je wymienić w następujący sposób, zakładając, że mam tylko 4 elementy w moim
$ scope: Users
Username1, Username2, Username3 and Username4<span data-ng-repeat="user in Users">{{user.Username}}</span>{{$last ? '' : ', '}}
Powyższe wyrażenie w zasadzie dodaje przecinek po każdym elemencie i działa dobrze.
Mój problem polega na tym, jak dodać słowo kluczowe
iprzed ostatnim elementem, aby wyglądało to tak:
Username1, Username2, Username3 and Username4
zamiast:
Username1, Username2, Username3, Username4
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
6 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Myślę, że poniższe wyrażenie powinno rozwiązać twój problem
Upewnij się również, że wyrażenie $ last znajduje się wewnątrz elementu ng-repeat, a nie poza nim
Sprawdź poniżej działające skrzypce
http://jsfiddle.net/hrishi1183/Sek8F/2
http://jsfiddle.net/hrishi1183/Sek8F/2/
/
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Zamiast coś dodawać, dodaj to. Możesz użyć , aby pominąć pierwszy. Następnie możesz użyć , aby dodać „i” zamiast przecinka.
Anonimowy użytkownik
Potwierdzenie od:
Używaj Commas
i
dla większej przejrzystości!
>Bill Gates przekazuje 6 milionów dolarów na rzecz Nazwa użytkownika1, Nazwa użytkownika2 i Nazwa użytkownika3.
vs
Bill Gates przekazuje 6 milionów na nazwy użytkownika 1, nazwa użytkownika 2 i nazwa użytkownika 3.
Bez sekwencyjnego przecinka we wniosku nie ma jasnego wskazania, że każdemu użytkownikowi należy przyznać równy udział.
Wyjścia:
Anonimowy użytkownik
Potwierdzenie od:
odważne elementy
lub linki). Więc nie będziesz w stanie po prostu wyświetlić ciągu z filtru. Na początku próbowałem użyć ng-bind-html i wyprowadzić HTML z filtra, ale to nie było wystarczająco elastyczne.
W rezultacie stworzyłem dyrektywę, która może być używana w dowolnym ng-powtórzyć, aby dodać separator między elementami listy. Sztuką jest to, że miałem dostęp tylko do pierwszego, ostatniego, ostatniego i $ indeksu (a nie do oryginalnej tablicy ani jej długości!).
Moja decyzja:
<div class="snippet-code">
<div class="snippet" data-hide="false" data-lang="js">
<pre class="snippet-code-js lang-js prettyprint-override">
<pre class="snippet-code-html lang-html prettyprint-override">
Cieszyć się!
Anonimowy użytkownik
Potwierdzenie od:
Kod filtra jest w przybliżeniu (przy użyciu
Lodash
https://lodash.com/
):
Oszczędzisz sobie hackerskiego użycia poza i operatorami trójskładnikowymi - i dodasz możliwość ponownego użycia w innych częściach aplikacji.