aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ngMobile/directive/ngSwipe.js7
-rw-r--r--test/ngMobile/directive/ngSwipeSpec.js32
2 files changed, 36 insertions, 3 deletions
diff --git a/src/ngMobile/directive/ngSwipe.js b/src/ngMobile/directive/ngSwipe.js
index e68e45da..42389542 100644
--- a/src/ngMobile/directive/ngSwipe.js
+++ b/src/ngMobile/directive/ngSwipe.js
@@ -54,7 +54,7 @@
</doc:example>
*/
-function makeSwipeDirective(directiveName, direction) {
+function makeSwipeDirective(directiveName, direction, eventName) {
ngMobile.directive(directiveName, ['$parse', '$swipe', function($parse, $swipe) {
// The maximum vertical delta for a swipe should be less than 75px.
var MAX_VERTICAL_DISTANCE = 75;
@@ -98,6 +98,7 @@ function makeSwipeDirective(directiveName, direction) {
'end': function(coords) {
if (validSwipe(coords)) {
scope.$apply(function() {
+ element.triggerHandler(eventName);
swipeHandler(scope);
});
}
@@ -108,6 +109,6 @@ function makeSwipeDirective(directiveName, direction) {
}
// Left is negative X-coordinate, right is positive.
-makeSwipeDirective('ngSwipeLeft', -1);
-makeSwipeDirective('ngSwipeRight', 1);
+makeSwipeDirective('ngSwipeLeft', -1, 'swipeleft');
+makeSwipeDirective('ngSwipeRight', 1, 'swiperight');
diff --git a/test/ngMobile/directive/ngSwipeSpec.js b/test/ngMobile/directive/ngSwipeSpec.js
index 6bc7d300..f51556c6 100644
--- a/test/ngMobile/directive/ngSwipeSpec.js
+++ b/test/ngMobile/directive/ngSwipeSpec.js
@@ -102,6 +102,38 @@ var swipeTests = function(description, restrictBrowsers, startEvent, moveEvent,
expect($rootScope.swiped).toBeUndefined();
}));
+
+ it('should emit "swipeleft" events for left swipes', inject(function($rootScope, $compile, $rootElement) {
+ element = $compile('<div ng-swipe-left="swiped = true"></div>')($rootScope);
+ $rootElement.append(element);
+ $rootScope.$digest();
+
+ expect($rootScope.swiped).toBeUndefined();
+ var eventFired = false;
+ element.on('swipeleft', function() {
+ eventFired = true;
+ });
+
+ browserTrigger(element, startEvent, [], 100, 20);
+ browserTrigger(element, endEvent, [], 20, 20);
+ expect(eventFired).toEqual(true);
+ }));
+
+ it('should emit "swiperight" events for right swipes', inject(function($rootScope, $compile, $rootElement) {
+ element = $compile('<div ng-swipe-right="swiped = true"></div>')($rootScope);
+ $rootElement.append(element);
+ $rootScope.$digest();
+
+ expect($rootScope.swiped).toBeUndefined();
+ var eventFired = false;
+ element.on('swiperight', function() {
+ eventFired = true;
+ });
+
+ browserTrigger(element, startEvent, [], 20, 20);
+ browserTrigger(element, endEvent, [], 100, 20);
+ expect(eventFired).toEqual(true);
+ }));
});
}