The problem is shown here:
http://jsfiddle.net/ews7S/
<input type="text" ng-model="testModel" dir="123">
When an element is bound to a model in a controller scope and you also add a directive to the element that has it’s own local scope, then changes to the model only change in the directives scope.
The solution is to add this to the directive:
See here:
http://jsfiddle.net/ews7S/1/
Why this works is because the ‘=’ sets up bi-directional binding between a local scope property and the parent scope property (see docs: http://docs.angularjs.org/guide/directive under Directive Definition Object).