2014-10-03 10 views
5

Utworzono element ng-bind w moim szablonie, który wyświetla liczbę zaokrągloną o jeden dziesiętny. Jak dodać końcówkę % z poziomu logiki ng-bind?AngularJS ng-bind musi pokazywać zmienną + "ciąg"

Mój kod:

<span ng-bind="variable | number: 1" 
     class="animated" ng-show="variable" 
     ng-class="{'fadeIn':variable}"></span> 

Wyniki w (na przykład) 4.5 ale chcę go mieć 4.5%.

Chodzi o to, że chcę dodać do końca znak %, ale jak? Wolałbym nie dodawać drugiego zakresu, z tą samą logiką, tylko dla tej jednej postaci, a ng-bind="variable + '%' | number: 1" nie działa. Chciałbym również uniknąć dodatkowego kodu w moich kontrolerach/dyrektywach, ponieważ myślę, że jest to bardziej szablonowa rzecz (i potrzebuję tylko użyć go kilka razy).

+1

Można użyć interpolacji ' {{variable | number: 1}}% 'lub utwórz/użyj filtru procentowego ... lub utwórz filtr niestandardowy, który służy do justowania liczby zaokrąglania i dodawania procentów. Jak o' ng-bind = "(zmienna | liczba: 1) + '%' "' – PSL

+0

Pierwsze dwie sugestie to trochę "przesada", ponieważ potrzebuję tego 3-4 razy w całym moim projekcie. Ale ostatnia rzecz, którą powiedziałeś, była dokładnie tym, czego chciałem. działa świetnie. Dzięki. Możesz to złożyć jako odpowiedź, więc mogę oznaczyć ją jako taką. –

+0

Jeśli zrobisz to w 'ng-bind' lub użyjesz interpolacji ... nie ma przesady, oba są niemal identyczne. używając filtrów tak, jeśli nie musisz robić na nim bardziej skomplikowanych rzeczy. – PSL

Odpowiedz

13

Problem polega na podawaniu nieprawidłowego numeru do filtra numeru. Zamiast tego możesz przenieść procent do końca po zakończeniu filtrowania liczb.

<span ng-bind="(variable | number: 1) + '%'" 
    class="animated" ng-show="variable" 
    ng-class="{'fadeIn':variable}"></span> 

lub użyć interpolacji

<span class="animated" ng-show="variable" ng-class="{'fadeIn':variable}">{{variable | number: 1}}%</span> 

Demo

Albo można nawet utworzyć filtr, który wykonuje zaokrąglenie liczby i dodaniu % i po prostu użyć tego filtru lub inny filtr niestandardowy aby dodać procent (po prostu upewnij się, że nie jest to przesada, chyba że musisz to zrobić w wielu miejscach).

Powiązane problemy