I need to collect a rate of change - in percentages - from my application\'s users. Here is the text input I am using:
Well, you just did it the absolute right way with the ctrl.$parser and ctrl.$formatter You just can leave out the $filter thing, its absulotuly not needed there. Just check it out they don't use the filter there, too.
I think you should use a directive. If you think you are about to fall back to using JQuery to start manipulating the DOM elements then a directive is probably what you want.
This is an example of a filter: http://embed.plnkr.co/TT6ZwOF6nYXwMcemR3JF/preview
What you could do is filter the value you enter as part of a watch event. However that depends on your specific use case.