-
-
Save jeffjohnson9046/9470800 to your computer and use it in GitHub Desktop.
// In app.js or main.js or whatever: | |
// var myApp = angular.module('askchisne', ['ngSanitize', 'ngAnimate', 'ui.bootstrap', 'ui.bootstrap.tpls']); | |
// This filter makes the assumption that the input will be in decimal form (i.e. 17% is 0.17). | |
myApp.filter('percentage', ['$filter', function ($filter) { | |
return function (input, decimals) { | |
return $filter('number')(input * 100, decimals) + '%'; | |
}; | |
}]); | |
// Usage: | |
<tr ng-repeat="i in items"> | |
<td>{{i.statistic | percentage:2}}</td> | |
</tr> |
Thank You. Worked just fine!
Awesome! just what I needed. saved me time.
nice, but i suggest a more 'built-in' approach:
{{val * 100| number :1 }}%
docs for number
filter @ https://docs.angularjs.org/api/ng/filter/number
Awesome post
It might help you.
http://www.code-sample.com/2015/02/angularjs-filter-directive.html
Thanks!
Any way you could update this to hide the decimal zero?
Works great!
👍 🚀
Thanks!
If I wanted to put this inline as in:
cellFilter: $filter(''number')(input * 100, decimals) + '%';
... if I put it inline, what would I put instead of 'input'? I am getting an error this way, & trying to inject the custom filter is not working for me right now for some reason.
thanks for sharing this. 👍
thanks for working example
@jeffjohnson9046 In my project I have the same code what you have posted above , I confused on the
return function (input, decimals) { return $filter('number')(input * 100, decimals) + '%'; };
My question , where is the data comes from input , for my case in my jade like this
td(style='text-align: right', ng-show='view.showHistory') span(ng-bind='x.recentScore | percentage:0') trend-arrow(b='x.pastScore', a='x.recentScore')
I dont get any Clue where they assigned input value ? Please guide me.
Thanks!
thanks!
Thanks for this.
Awesome! How do you apply this to an input tag though? I only need to put a '%' suffix in the input but read the numeric value in the model?
Thank you!
Works like charm...
Thanks!!!
i need to add decimal point with dot (.) or comma (,) separator.how could anyone find a way to solve the problem.
Useful, thanks!
Awesome, thanks!
Thanks
@LahiruDhananjaya, you only have to use i18n and l10n.
nice.
Adding a check for the decimal and default it to 2 is a better addition. In most cases, percentages are represented in 2 decimals.
myApp.filter('percentage', ['$filter', function ($filter) { return function (input, decimals) { if (typeof decimals === "undefined") { decimals = 2; } return $filter('number')(input * 100, decimals) + '%'; }; }]);
This solution taught me what i need to know about pipes AKA filters. Jeez!!
works like a charm! thank you.