Q:

AngularJS: call directive on ng-Model disable

 app.directive('updateDecimals', function($parse, $filter) {
        return {
            restrict: 'A',
            require: '?ngModel',
            link: function(scope, ele, attrs, ngModel) {
                scope.$watch(function () {
                ngModel.$render = function(){
                    var decimalDigits = $parse(attrs.updateDecimals)(scope);
                    console.log(decimalDigits);
                    var updatedValue = parseFloat(ngModel.$viewValue, 10);
                    updatedValue = $filter('number')(updatedValue, decimalDigits);
                      console.log(updatedValue);
                    ngModel.$setViewValue(updatedValue);
                }
            });
            }
        };
    });

In the above code, directive is not calling when the ngModel is in disable

A:

If you want to format the value you should add a formatter to ngModel.$formatters.
var app = angular.module('angularTest', []);

app.controller('MainCtrl', ['$scope', 'filterFilter', 'orderByFilter', function($scope, filterFilter, orderByFilter) {
    $scope.value = 1.23456789;
}]);

app.directive('updateDecimals', function($parse, $filter) {
  return {
    restrict: 'A',
    require: '?ngModel',
    link: function(scope, ele, attrs, ngModel) {
      var decimalDigits = $parse(attrs.updateDecimals)(scope);
      console.log(decimalDigits);
      ngModel.$formatters.unshift(function(v) {
        var updatedValue = parseFloat(v, 10);
        console.log(updatedValue);
        updatedValue = $filter('number')(updatedValue, decimalDigits);
        return updatedValue;
      });
    }
  };
});

jsFiddle
If you want to modify the model value, you can use ngModel.$parsers similarly.

