From 823adb231995e917bc060bfa49453e2a96bac2b6 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Thu, 15 Mar 2012 14:08:49 -0700 Subject: fix(ngForm): alias name||ngForm form directive was requiring name attribute even when invoked as attribute, resulting in unnecessary duplication --- src/directive/form.js | 60 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/directive/form.js b/src/directive/form.js index 98c291d4..b6d3f4be 100644 --- a/src/directive/form.js +++ b/src/directive/form.js @@ -31,10 +31,10 @@ var nullFormCtrl = { * of `FormController`. * */ -FormController.$inject = ['name', '$element', '$attrs']; -function FormController(name, element, attrs) { +FormController.$inject = ['$element', '$attrs']; +function FormController(element, attrs) { var form = this, - parentForm = element.parent().inheritedData('$formController') || nullFormCtrl, + parentForm = element.parent().controller('form') || nullFormCtrl, invalidCount = 0, // used to easily determine if we are valid errors = form.$error = {}; @@ -45,9 +45,6 @@ function FormController(name, element, attrs) { form.$valid = true; form.$invalid = false; - // publish the form into scope - name(this); - parentForm.$addControl(form); // Setup initial state of the control @@ -130,9 +127,24 @@ function FormController(name, element, attrs) { /** + * @ngdoc directive + * @name angular.module.ng.$compileProvider.directive.ng-form + * @restrict EAC + * + * @description + * Nestable alias of {@link angular.module.ng.$compileProvider.directive.form `form`} directive. HTML + * does not allow nesting of form elements. It is useful to nest forms, for example if the validity of a + * sub-group of controls needs to be determined. + * + * @param {string=} ng-form|name Name of the form. If specified, the form controller will be published into + * related scope, under this name. + * + */ + + /** * @ngdoc directive * @name angular.module.ng.$compileProvider.directive.form - * @restrict EA + * @restrict E * * @description * Directive that instantiates @@ -141,12 +153,12 @@ function FormController(name, element, attrs) { * If `name` attribute is specified, the form controller is published onto the current scope under * this name. * - * # Alias: `ng-form` + * # Alias: {@link angular.module.ng.$compileProvider.directive.ng-form `ng-form`} * * In angular forms can be nested. This means that the outer form is valid when all of the child * forms are valid as well. However browsers do not allow nesting of `