From e55c97debaa0ef8487ece219b6eadbc147ece1f9 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Mon, 29 Mar 2010 20:25:42 -0700 Subject: dissabled a lot of tests, and made the core test set pass. --- src/Widgets.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'src/Widgets.js') diff --git a/src/Widgets.js b/src/Widgets.js index 42b9e916..b5222ac7 100644 --- a/src/Widgets.js +++ b/src/Widgets.js @@ -18,7 +18,7 @@ function compileValidator(expr) { return new Parser(expr).validator()(); } -function valueAccessor(element) { +function valueAccessor(scope, element) { var validatorName = element.attr('ng-validate') || NOOP, validator = compileValidator(validatorName), required = element.attr('ng-required'), @@ -26,7 +26,7 @@ function valueAccessor(element) { required = required || required == ''; if (!validator) throw "Validator named '" + validatorName + "' not found."; function validate(value) { - var error = required && !trim(value) ? "Required" : validator.call(this, value); + var error = required && !trim(value) ? "Required" : validator({self:scope, scope:{get:scope.$get, set:scope.$set}}, value); if (error !== lastError) { if (error) { element.addClass(NG_VALIDATION_ERROR); @@ -45,23 +45,31 @@ function valueAccessor(element) { }; } -function checkedAccessor(element) { +function checkedAccessor(scope, element) { var domElement = element[0]; return { - get: function(){ return !!domElement.checked; }, - set: function(value){ domElement.checked = !!value; } + get: function(){ + return !!domElement.checked; + }, + set: function(value){ + domElement.checked = !!value; + } }; } -function radioAccessor(element) { +function radioAccessor(scope, element) { var domElement = element[0]; return { - get: function(){ return domElement.checked ? domElement.value : null; }, - set: function(value){ domElement.checked = value == domElement.value; } + get: function(){ + return domElement.checked ? domElement.value : null; + }, + set: function(value){ + domElement.checked = value == domElement.value; + } }; } -function optionsAccessor(element) { +function optionsAccessor(scope, element) { var options = element[0].options; return { get: function(){ @@ -107,7 +115,7 @@ function inputWidget(events, modelAccessor, viewAccessor, initValue) { return function(element) { var scope = this, model = modelAccessor(scope, element), - view = viewAccessor(element), + view = viewAccessor(scope, element), action = element.attr('ng-action') || '', value = view.get() || copy(initValue); if (isDefined(value)) model.set(value); -- cgit v1.2.3