aboutsummaryrefslogtreecommitdiffstats
path: root/src/directive/form.js
diff options
context:
space:
mode:
authorMisko Hevery2012-03-13 16:14:58 -0700
committerMisko Hevery2012-03-13 16:59:10 -0700
commite9e3ee012b50f868f4cd68f3571560680998a19b (patch)
treea025cd1d4d28ea786e0e0978ab283526ee841ece /src/directive/form.js
parentde9464c1431906883bdf180fb00615e6fa371577 (diff)
downloadangular.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.js53
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'}));