StackOverflow_24056331: initialising-function-in-angular-filter

Illustration of answer to http://stackoverflow.com/questions/24056331/initialising-function-in-angular-filter.

by ExpertSystem

HTML

<script src="http://code.angularjs.org/1.2.16/angular.min.js"></script>
<div ng-controller="myCtrl">
    <div ng-repeat="letter in letters">{{letter}} =&gt; {{letter | myFilter}}</div>
</div>

JavaScript

var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope) {
    $scope.letters = 'abc'.split('');
});

app.filter("myFilter", function() {
    var staticFilterSpecificData = {
        "a": "letterA",
        "b": "letterB"
    };
    console.log('Initialized only once !');

    return function(letter) {
         return staticFilterSpecificData[letter] || 'unknown'; 
    };
});