diff options
| author | Misko Hevery | 2012-03-13 16:14:58 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2012-03-13 16:59:10 -0700 | 
| commit | e9e3ee012b50f868f4cd68f3571560680998a19b (patch) | |
| tree | a025cd1d4d28ea786e0e0978ab283526ee841ece /src/directive/form.js | |
| parent | de9464c1431906883bdf180fb00615e6fa371577 (diff) | |
| download | angular.js-e9e3ee012b50f868f4cd68f3571560680998a19b.tar.bz2 | |
feat(compile): allow ngForm on attribute and class
#feature
- ngForm directive can now be used with element, class, and attributes
Diffstat (limited to 'src/directive/form.js')
| -rw-r--r-- | src/directive/form.js | 53 | 
1 files changed, 27 insertions, 26 deletions
| diff --git a/src/directive/form.js b/src/directive/form.js index 47274589..f4c96455 100644 --- a/src/directive/form.js +++ b/src/directive/form.js @@ -222,31 +222,32 @@ function FormController(name, element, attrs) {        </doc:scenario>      </doc:example>   */ -var formDirective = [function() { -  return { -    name: 'form', -    restrict: 'E', -    inject: { -      name: 'accessor' -    }, -    controller: FormController, -    compile: function() { -      return { -        pre: function(scope, formElement, attr, controller) { -          formElement.bind('submit', function(event) { -            if (!attr.action) event.preventDefault(); -          }); +var formDirectiveDev = { +  name: 'form', +  restrict: 'E', +  inject: { +    name: 'accessor' +  }, +  controller: FormController, +  compile: function() { +    return { +      pre: function(scope, formElement, attr, controller) { +        formElement.bind('submit', function(event) { +          if (!attr.action) event.preventDefault(); +        }); -          var parentFormCtrl = formElement.parent().inheritedData('$formController'); -          if (parentFormCtrl) { -            formElement.bind('$destroy', function() { -              parentFormCtrl.$removeControl(controller); -              if (attr.name) delete scope[attr.name]; -              extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards -            }); -          } +        var parentFormCtrl = formElement.parent().inheritedData('$formController'); +        if (parentFormCtrl) { +          formElement.bind('$destroy', function() { +            parentFormCtrl.$removeControl(controller); +            if (attr.name) delete scope[attr.name]; +            extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards +          });          } -      }; -    } -  }; -}]; +      } +    }; +  } +}; + +var formDirective = valueFn(formDirectiveDev); +var ngFormDirective = valueFn(extend(copy(formDirectiveDev), {restrict:'EAC'})); | 
