From 7ab98edb0c0d3040bf4935ff6ce45ce38a2ae430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Arnaud?= <13984316+BulletAnt@users.noreply.github.com> Date: Tue, 26 Sep 2017 14:53:05 +0200 Subject: [PATCH] External validator function Add the possibility to have an external validator function by passing to the validator an expression. Such as : "$validators" : { "equalsEmail" : "mustBeEqual(modelValue, 'email')" } --- src/directives/schema-validate.directive.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/directives/schema-validate.directive.js b/src/directives/schema-validate.directive.js index 844e22e80..91213fe84 100644 --- a/src/directives/schema-validate.directive.js +++ b/src/directives/schema-validate.directive.js @@ -105,6 +105,17 @@ export default function(sfValidator, $parse, sfSelect, $interpolate) { // Check if our version of angular has validators, i.e. 1.3+ if (form[attr] && ngModel[attr]) { angular.forEach(form[attr], function(fn, name) { + if ( angular.isString(fn) ) { + var fnName = fn; + fn = function( modelValue, viewValue, model, form ) { + return scope.evalExpr( fnName, { + 'modelValue': modelValue, + 'viewValue': viewValue, + 'model': model, + 'form': form + }); + } + } ngModel[attr][name] = function(modelValue, viewValue) { return fn(modelValue, viewValue, scope.model, form); };