@workInProgress @ngdoc overview @name Tutorial: Step 9 @description
{@link tutorial.step_00 Previous} {@link http://angular.github.com/angular-phonecat/step-9/app Live Demo } {@link tutorial Tutorial Home} {@link https://github.com/angular/angular-phonecat/compare/step-8...step-9 Code Diff} {@link tutorial.step_00 Next}
In this step, we have determined that the built-in angular display filters ({@link angular.filter.number number}, {@link angular.filter.currency currency}, {@link angular.filter.date date}, etc.) don't handle what we want to do, so we get to create our own custom {@link angular.filter filter}. In the previous step, the details page displayed either "true" or "false" to indicate whether certain phone features were present or not. Our custom "checkmark" filter replaces those text strings with glyphs: ✓ for "true", and ✘ for "false". Our filter code lives in `app/js/filters.js`: __`app/index.html`:__
...
 
 
 
...
In the phone details template, we employ our filter for angular expressions whose values are "true" or "false"; `{{ [phone_feature] | checkmark }}`: __`app/partials/phone-detail.html`:__

{{phone.name}}

{{phone.description}}

...
__`app/js/filters.js`:__ (New)
angular.filter('checkmark', function(input) {
  return input ? '\u2713' : '\u2718';
});
__`test/unit/filtersSpec.js`:__ (New)
describe('checkmark filter', function() {

  it('should convert boolean values to unicode checkmark or cross', function() {
    expect(angular.filter.checkmark(true)).toBe('\u2713');
    expect(angular.filter.checkmark(false)).toBe('\u2718');
  });
})
## Discussion: * This example shows how easy it is to roll your own filters for displaying data. As explained in the "Writing your own Filters" section of the {@link angular.filter angular.filter} page, you simply register your custom filter function on to the `angular.filter` function. * In this example, our filter name is "checkmark"; our input is either "true" or "false", and we return one of two unicode characters we have chosen to represent true or false (`\u2713` and `\u2718`). * We created a new unit test to verify that our custom filter converts boolean values to unicode characters.
{@link tutorial.step_00 Previous} {@link http://angular.github.com/angular-phonecat/step-9/app Live Demo } {@link tutorial Tutorial Home} {@link https://github.com/angular/angular-phonecat/compare/step-8...step-9 Code Diff} {@link tutorial.step_00 Next}