diff options
| author | Wesley Cho | 2013-05-23 11:22:55 -0400 |
|---|---|---|
| committer | Igor Minar | 2013-07-11 17:24:30 -0700 |
| commit | 3371fc254a9698eae35bb6f8f1ee9c434ae761e2 (patch) | |
| tree | eff3ae4ac470ce86986eecd0c8a5d7b514f345f2 | |
| parent | 09a1e7af129880cab89a2f709f22a7286f52371e (diff) | |
| download | angular.js-3371fc254a9698eae35bb6f8f1ee9c434ae761e2.tar.bz2 | |
fix(ngSubmit): expose $event to ngSubmit callback
| -rwxr-xr-x | src/AngularPublic.js | 1 | ||||
| -rw-r--r-- | src/ng/directive/ngEventDirs.js | 9 | ||||
| -rw-r--r-- | test/ng/directive/ngEventDirsSpec.js | 17 |
3 files changed, 19 insertions, 8 deletions
diff --git a/src/AngularPublic.js b/src/AngularPublic.js index 53ad5aab..15f9cbca 100755 --- a/src/AngularPublic.js +++ b/src/AngularPublic.js @@ -88,7 +88,6 @@ function publishExternalAPI(angular){ ngPluralize: ngPluralizeDirective, ngRepeat: ngRepeatDirective, ngShow: ngShowDirective, - ngSubmit: ngSubmitDirective, ngStyle: ngStyleDirective, ngSwitch: ngSwitchDirective, ngSwitchWhen: ngSwitchWhenDirective, diff --git a/src/ng/directive/ngEventDirs.js b/src/ng/directive/ngEventDirs.js index 9420f720..ac13f472 100644 --- a/src/ng/directive/ngEventDirs.js +++ b/src/ng/directive/ngEventDirs.js @@ -37,7 +37,7 @@ */ var ngEventDirectives = {}; forEach( - 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress'.split(' '), + 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit'.split(' '), function(name) { var directiveName = directiveNormalize('ng-' + name); ngEventDirectives[directiveName] = ['$parse', function($parse) { @@ -224,7 +224,7 @@ forEach( * attribute**. * * @element form - * @param {expression} ngSubmit {@link guide/expression Expression} to eval. + * @param {expression} ngSubmit {@link guide/expression Expression} to eval. (Event object is available as `$event`) * * @example <doc:example> @@ -264,8 +264,3 @@ forEach( </doc:scenario> </doc:example> */ -var ngSubmitDirective = ngDirective(function(scope, element, attrs) { - element.on('submit', function() { - scope.$apply(attrs.ngSubmit); - }); -}); diff --git a/test/ng/directive/ngEventDirsSpec.js b/test/ng/directive/ngEventDirsSpec.js index 4aa09fc5..5b73c2dd 100644 --- a/test/ng/directive/ngEventDirsSpec.js +++ b/test/ng/directive/ngEventDirsSpec.js @@ -21,5 +21,22 @@ describe('event directives', function() { browserTrigger(element.children()[0]); expect($rootScope.submitted).toEqual(true); })); + + it('should expose event on form submit', inject(function($rootScope, $compile) { + $rootScope.formSubmission = function(e) { + if (e) { + $rootScope.formSubmitted = 'foo'; + } + }; + + element = $compile('<form action="" ng-submit="formSubmission($event)">' + + '<input type="submit"/>' + + '</form>')($rootScope); + $rootScope.$digest(); + expect($rootScope.formSubmitted).not.toBeDefined(); + + browserTrigger(element.children()[0]); + expect($rootScope.formSubmitted).toEqual('foo'); + })); }); }); |
