aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWesley Cho2013-05-23 11:22:55 -0400
committerIgor Minar2013-07-11 17:24:30 -0700
commit3371fc254a9698eae35bb6f8f1ee9c434ae761e2 (patch)
treeeff3ae4ac470ce86986eecd0c8a5d7b514f345f2
parent09a1e7af129880cab89a2f709f22a7286f52371e (diff)
downloadangular.js-3371fc254a9698eae35bb6f8f1ee9c434ae761e2.tar.bz2
fix(ngSubmit): expose $event to ngSubmit callback
-rwxr-xr-xsrc/AngularPublic.js1
-rw-r--r--src/ng/directive/ngEventDirs.js9
-rw-r--r--test/ng/directive/ngEventDirsSpec.js17
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');
+ }));
});
});