diff options
| author | Shyam Seshadri | 2010-06-02 17:13:10 -0700 |
|---|---|---|
| committer | Shyam Seshadri | 2010-06-02 17:13:10 -0700 |
| commit | 3245209bdb9e656622756220c5bbeb80d3ae2eac (patch) | |
| tree | 749eaca3bf88bf2389f9bee8f17af43e5f6fdd89 /src | |
| parent | 39312d1fe3a27b248f98f6f26577fcd7e2c64f85 (diff) | |
| download | angular.js-3245209bdb9e656622756220c5bbeb80d3ae2eac.tar.bz2 | |
Add ability to add conditions to ng-required
Diffstat (limited to 'src')
| -rw-r--r-- | src/widgets.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/widgets.js b/src/widgets.js index 09d743e9..42d56e20 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -35,16 +35,21 @@ function compileValidator(expr) { function valueAccessor(scope, element) { var validatorName = element.attr('ng-validate') || NOOP, validator = compileValidator(validatorName), - required = element.attr('ng-required'), + requiredExpr = element.attr('ng-required'), farmatterName = element.attr('ng-format') || NOOP, formatter = angularFormatter(farmatterName), - format, parse, lastError; + format, parse, lastError, required; invalidWidgets = scope.$invalidWidgets || {markValid:noop, markInvalid:noop}; if (!validator) throw "Validator named '" + validatorName + "' not found."; if (!formatter) throw "Formatter named '" + farmatterName + "' not found."; format = formatter.format; parse = formatter.parse; - required = required || required === ''; + if (requiredExpr) { + scope.$watch(requiredExpr, function(newValue) {required = newValue; validate();}); + } else { + required = requiredExpr === ''; + } + element.data('$validate', validate); return { |
