>>>>I tested using both positive and negative priority and your directive always ran first. I *did* get it to work by changing your formatter to:
>>>> function bind() {
>>>> return ngModel.$formatters.unshift(function (value) {
>>>> return format(value);
>>>> });
>>>> }
Don't know why the priority approach didn't work but this shows that your formatter needs to be first in the $formatters array.....
>>>
>>>There is some activity in the issue I raised
>>>
>>>
https://github.com/angular/angular.js/issues/11157#issuecomment-75706528>>>
>>>and I also posted a new plnkr
>>>
>>>
http://plnkr.co/edit/z1BWMoPmnsCZlAUra0os?p=preview>>
>>Using Priority and push gives exactly the same formatter execution order (ie angulars directive followed by yours). Behaviour is the same in both cases.
>>What exactly is your problem with this code ?
>>BTW you should probably also add 'event.preventDefault()' in your keydown event handler - simply returning true/false only works in IE.
>>
>>Also you need to prevent multiple decimal points:
if (isDecimal(event.keyCode)) {
>> if (event.srcElement.value.indexOf('.') !== -1) {
>> event.preventDefault();
>> return false;
>> }
>> }
(or use a regex)
>
>Thanks, I'll make adjustements.
But you didn't answer my question: "What exactly is your problem with this code ?"