.directive('disabledIf', disabledIf); function disabledIf() { return { restrict: 'A', link: function(scope, element, attrs) { var expr = attrs.disabledIf; scope.$watch(expr, function(val) { if (val) { element.attr('disabled', val); } else { element.removeAttr('disabled'); } }); } }; }