mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
Merge pull request #367 from driftyco/pr/194
Cleanups from @sorich87 for side menus, minus some scope destroy stuff
This commit is contained in:
6
dist/js/ionic-angular.js
vendored
6
dist/js/ionic-angular.js
vendored
@@ -1759,10 +1759,11 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
var defaultPrevented = false;
|
||||
var isDragging = false;
|
||||
|
||||
ionic.on('mousedown', function(e) {
|
||||
var readDefaultPrevented = function(e) {
|
||||
// If the child element prevented the drag, don't drag
|
||||
defaultPrevented = e.defaultPrevented;
|
||||
});
|
||||
}
|
||||
ionic.on('mousedown', readDefaultPrevented);
|
||||
|
||||
// Listen for taps on the content to close the menu
|
||||
/*
|
||||
@@ -1835,6 +1836,7 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
Gesture.off(dragUpGesture, 'dragup', dragFn);
|
||||
Gesture.off(dragDownGesture, 'dragdown', dragFn);
|
||||
Gesture.off(releaseGesture, 'release', dragReleaseFn);
|
||||
ionic.off('mousedown', readDefaultPrevented);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@@ -60,10 +60,11 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
var defaultPrevented = false;
|
||||
var isDragging = false;
|
||||
|
||||
ionic.on('mousedown', function(e) {
|
||||
var readDefaultPrevented = function(e) {
|
||||
// If the child element prevented the drag, don't drag
|
||||
defaultPrevented = e.defaultPrevented;
|
||||
});
|
||||
}
|
||||
ionic.on('mousedown', readDefaultPrevented);
|
||||
|
||||
// Listen for taps on the content to close the menu
|
||||
/*
|
||||
@@ -136,6 +137,7 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
Gesture.off(dragUpGesture, 'dragup', dragFn);
|
||||
Gesture.off(dragDownGesture, 'dragdown', dragFn);
|
||||
Gesture.off(releaseGesture, 'release', dragReleaseFn);
|
||||
ionic.off('mousedown', readDefaultPrevented);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,3 +16,67 @@ describe('Ionic Angular Side Menu', function() {
|
||||
expect(scope.sideMenuController).not.toBe(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Ionic Side Menu Content Directive', function () {
|
||||
var $compile, element, scope, sideMenusCtrl;
|
||||
|
||||
beforeEach(module('ionic.ui.sideMenu'));
|
||||
|
||||
beforeEach(inject(function (_$compile_, _$rootScope_) {
|
||||
$compile = _$compile_;
|
||||
scope = _$rootScope_;
|
||||
|
||||
var sideMenus = $compile('<side-menus>')(scope).appendTo('body');
|
||||
|
||||
sideMenuCtrl = sideMenus.controller('sideMenus');
|
||||
spyOn(sideMenuCtrl, '_handleDrag');
|
||||
|
||||
element = angular.element('<div side-menu-content>').appendTo(sideMenus);
|
||||
|
||||
$compile(element)(scope);
|
||||
scope.$digest();
|
||||
}));
|
||||
|
||||
it('Should handle drag', function () {
|
||||
ionic.trigger('drag', {target: element[0]});
|
||||
|
||||
expect(sideMenuCtrl._handleDrag).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('Should not handle drag when prevented', function () {
|
||||
var event = new CustomEvent('mousedown', {bubbles: true, cancelable: true});
|
||||
event.preventDefault();
|
||||
element[0].dispatchEvent(event);
|
||||
|
||||
ionic.trigger('drag', {target: element[0]});
|
||||
|
||||
expect(sideMenuCtrl._handleDrag).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Ionic Side Menu Directive', function () {
|
||||
var element, scope, sideMenuCtrl;
|
||||
|
||||
beforeEach(module('ionic.ui.sideMenu'));
|
||||
|
||||
beforeEach(inject(function (_$compile_, _$rootScope_) {
|
||||
var $compile = _$compile_;
|
||||
var $rootScope = _$rootScope_;
|
||||
|
||||
var sideMenus = $compile('<side-menus>')($rootScope);
|
||||
|
||||
sideMenuCtrl = sideMenus.controller('sideMenus');
|
||||
|
||||
element = angular.element('<side-menu side="left">').appendTo(sideMenus);
|
||||
$compile(element)($rootScope);
|
||||
|
||||
scope = element.scope();
|
||||
scope.$digest();
|
||||
}));
|
||||
|
||||
it('Should set attributes on the controller', function () {
|
||||
expect(sideMenuCtrl.left.isEnabled).not.toBe(undefined);
|
||||
expect(sideMenuCtrl.left.pushDown).not.toBe(undefined);
|
||||
expect(sideMenuCtrl.left.bringUp).not.toBe(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user