mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-21 04:53:58 +08:00
chore(gestures): add isListening to gestures
This commit is contained in:
@ -32,7 +32,6 @@ export class Menu extends Ion {
|
|||||||
private _resizeUnreg: Function;
|
private _resizeUnreg: Function;
|
||||||
private _isEnabled: boolean = true;
|
private _isEnabled: boolean = true;
|
||||||
private _isSwipeEnabled: boolean = true;
|
private _isSwipeEnabled: boolean = true;
|
||||||
private _isListening: boolean = false;
|
|
||||||
private _isPers: boolean = false;
|
private _isPers: boolean = false;
|
||||||
private _init: boolean = false;
|
private _init: boolean = false;
|
||||||
|
|
||||||
@ -198,21 +197,19 @@ export class Menu extends Ion {
|
|||||||
if (self._init) {
|
if (self._init) {
|
||||||
// only listen/unlisten if the menu has initialized
|
// only listen/unlisten if the menu has initialized
|
||||||
|
|
||||||
if (self._isEnabled && self._isSwipeEnabled && !self._isListening) {
|
if (self._isEnabled && self._isSwipeEnabled && !self._cntGesture.isListening) {
|
||||||
// should listen, but is not currently listening
|
// should listen, but is not currently listening
|
||||||
console.debug('menu, gesture listen', self.side);
|
console.debug('menu, gesture listen', self.side);
|
||||||
self._zone.runOutsideAngular(function() {
|
self._zone.runOutsideAngular(function() {
|
||||||
self._cntGesture.listen();
|
self._cntGesture.listen();
|
||||||
self._menuGesture.listen();
|
self._menuGesture.listen();
|
||||||
});
|
});
|
||||||
self._isListening = true;
|
|
||||||
|
|
||||||
} else if (self._isListening && (!self._isEnabled || !self._isSwipeEnabled)) {
|
} else if (self._cntGesture.isListening && (!self._isEnabled || !self._isSwipeEnabled)) {
|
||||||
// should not listen, but is currently listening
|
// should not listen, but is currently listening
|
||||||
console.debug('menu, gesture unlisten', self.side);
|
console.debug('menu, gesture unlisten', self.side);
|
||||||
self._cntGesture.unlisten();
|
self._cntGesture.unlisten();
|
||||||
self._menuGesture.unlisten();
|
self._menuGesture.unlisten();
|
||||||
self._isListening = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,12 +8,14 @@ import {Hammer, DIRECTION_HORIZONTAL, DIRECTION_VERTICAL} from './hammer';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export class Gesture {
|
export class Gesture {
|
||||||
public element: HTMLElement;
|
|
||||||
public direction: any;
|
|
||||||
private _hammer: any;
|
private _hammer: any;
|
||||||
private _options: any;
|
private _options: any;
|
||||||
private _callbacks: any = {};
|
private _callbacks: any = {};
|
||||||
|
|
||||||
|
public element: HTMLElement;
|
||||||
|
public direction: string;
|
||||||
|
public isListening: boolean = false;
|
||||||
|
|
||||||
constructor(element, opts: any = {}) {
|
constructor(element, opts: any = {}) {
|
||||||
defaults(opts, {
|
defaults(opts, {
|
||||||
domEvents: true
|
domEvents: true
|
||||||
@ -47,6 +49,7 @@ export class Gesture {
|
|||||||
|
|
||||||
listen() {
|
listen() {
|
||||||
this._hammer = Hammer(this.element, this._options);
|
this._hammer = Hammer(this.element, this._options);
|
||||||
|
this.isListening = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
unlisten() {
|
unlisten() {
|
||||||
@ -60,6 +63,7 @@ export class Gesture {
|
|||||||
this._callbacks = {};
|
this._callbacks = {};
|
||||||
this._hammer.destroy();
|
this._hammer.destroy();
|
||||||
}
|
}
|
||||||
|
this.isListening = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
|
Reference in New Issue
Block a user