diff options
| author | Igor Minar | 2012-03-13 14:56:52 -0700 |
|---|---|---|
| committer | Igor Minar | 2012-03-13 16:05:52 -0700 |
| commit | 4806d28a29ae5c3f83d8f97c11e692ca2313c9ab (patch) | |
| tree | 914f4e3b2ecdd2f4bccd89bea820da3b2fd54b2d /src/directive | |
| parent | 089c0f8b0e64f00e2629de07f35af03f01c34686 (diff) | |
| download | angular.js-4806d28a29ae5c3f83d8f97c11e692ca2313c9ab.tar.bz2 | |
fix(forms): remove control.$form and use nullFormCtrl
Diffstat (limited to 'src/directive')
| -rw-r--r-- | src/directive/form.js | 3 | ||||
| -rw-r--r-- | src/directive/input.js | 19 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/directive/form.js b/src/directive/form.js index a1bfcd12..6bb1b4d6 100644 --- a/src/directive/form.js +++ b/src/directive/form.js @@ -4,7 +4,8 @@ var nullFormCtrl = { $addControl: noop, $removeControl: noop, - $setValidity: noop + $setValidity: noop, + $setDirty: noop } /** diff --git a/src/directive/input.js b/src/directive/input.js index fee7a082..a92ad306 100644 --- a/src/directive/input.js +++ b/src/directive/input.js @@ -742,8 +742,8 @@ var inputDirective = [function() { * @description * */ -var NgModelController = ['$scope', '$exceptionHandler', '$attrs', 'ngModel', - function($scope, $exceptionHandler, $attr, ngModel) { +var NgModelController = ['$scope', '$exceptionHandler', '$attrs', 'ngModel', '$element', + function($scope, $exceptionHandler, $attr, ngModel, $element) { this.$viewValue = Number.NaN; this.$modelValue = Number.NaN; this.$parsers = []; @@ -757,6 +757,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', 'ngModel', this.$render = noop; this.$name = $attr.name; + var parentForm = $element.inheritedData('$formController') || nullFormCtrl; /** * @ngdoc function @@ -789,9 +790,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', 'ngModel', this.$valid = false; } - if (this.$form) { - this.$form.$setValidity(validationErrorKey, isValid, this); - } + parentForm.$setValidity(validationErrorKey, isValid, this); }; @@ -819,7 +818,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', 'ngModel', if (this.$pristine) { this.$dirty = true; this.$pristine = false; - if (this.$form) this.$form.$setDirty(); + parentForm.$setDirty(); } forEach(this.$parsers, function(fn) { @@ -907,11 +906,9 @@ var ngModelDirective = [function() { // notify others, especially parent forms var modelCtrl = ctrls[0], - formCtrl = ctrls[1]; - - modelCtrl.$form = formCtrl; + formCtrl = ctrls[1] || nullFormCtrl; - if (formCtrl) formCtrl.$addControl(modelCtrl); + formCtrl.$addControl(modelCtrl); forEach(['valid', 'invalid', 'pristine', 'dirty'], function(name) { scope.$watch(function() { @@ -922,7 +919,7 @@ var ngModelDirective = [function() { }); element.bind('$destroy', function() { - if (formCtrl) formCtrl.$removeControl(modelCtrl); + formCtrl.$removeControl(modelCtrl); }); } }; |
