Filters

Learn how to format and transform data with AngularJS filters.

Filters format the value of an expression for display. They are applied using the pipe symbol |.

Built-in Filters

<!-- currency -->
<p>{{ 9.99 | currency }}</p>          <!-- $9.99 -->
<p>{{ 9.99 | currency:'£' }}</p>     <!-- £9.99 -->

<!-- uppercase / lowercase -->
<p>{{ "hello" | uppercase }}</p>      <!-- HELLO -->
<p>{{ "HELLO" | lowercase }}</p>      <!-- hello -->

<!-- number -->
<p>{{ 3.14159 | number:2 }}</p>      <!-- 3.14 -->

<!-- date -->
<p>{{ today | date:'dd/MM/yyyy' }}</p>
<p>{{ today | date:'fullDate' }}</p>

<!-- json (for debugging) -->
<pre>{{ user | json }}</pre>

<!-- limitTo -->
<p>{{ "Hello World" | limitTo:5 }}</p> <!-- Hello -->

Filter in ng-repeat

<input ng-model="searchText" placeholder="Search...">

<ul>
    <li ng-repeat="user in users | filter:searchText | orderBy:'name'">
        {{ user.name }} ({{ user.age }})
    </li>
</ul>

orderBy Filter

<!-- Sort ascending by name -->
<li ng-repeat="user in users | orderBy:'name'">

<!-- Sort descending -->
<li ng-repeat="user in users | orderBy:'-age'">

Custom Filters

app.filter('reverse', function() {
    return function(input) {
        return input.split('').reverse().join('');
    };
});

// Usage:
// {{ "Hello" | reverse }}  → "olleH"

Chaining Filters

<p>{{ message | uppercase | limitTo:10 }}</p>