.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');
                    }
                });
            }
        };
    }