AngularJS 1.4
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
<body ng-app="myApp">
<h1>AngularJS 1.4 - test app</h1>
<div data-ng-controller="appCtrl">
<strong>Name 1:</strong> {{ nameOne | stateful }}
<br>
<input data-ng-model="nameOne"/>
<br>
<strong>Name 2:</strong> {{ nameTwo | stateless }}
<br>
<input data-ng-model="nameTwo"/>
<br>
</div>
<div id="logger">
</div>
</body>
JavaScript
var app = angular.module('myApp', []);
app.controller('appCtrl', ['$scope', function ($scope) {
$scope.nameOne = 'one';
$scope.nameTwo = 'two';
}]);
app.filter('stateful', [function () {
function customFilter (input) {
document.getElementById('logger').innerHTML += '<div>Stateful re-run</div>';
return input + ' :c';
}
customFilter.$stateful = true;
return customFilter;
}]);
app.filter('stateless', [function () {
function customFilter (input) {
document.getElementById('logger').innerHTML += '<div>Stateless re-run</div>';
return input + ' :)';
}
return customFilter;
}]);