У меня есть следующая функция, которая работает, принимаю, я не хочу вводить switchMap
, если событие mouseDown было щелчком правой кнопкой мыши
this.zone.runOutsideAngular(() => {
let mousedown$ = Observable.fromEvent(this.handle, 'mousedown');
let mousemove$ = Observable.fromEvent(document, 'mousemove');
let mouseup$ = Observable.fromEvent(document, 'mouseup');
let mousedrag$ = mousedown$.switchMap((event: MouseEvent) => {
console.log('mousedown :', event);
if (event.which !== 1) {
// something when wrong
}
let startX = event.clientX;
let startY = event.clientY;
return mousemove$
.map((event: MouseEvent) => {
event.preventDefault();
this.delta = {
x: event.clientX - startX,
y: event.clientY - startY
};
})
.takeUntil(mouseup$);
}).takeUntil(this.destroy$);
});
как я могу изменить let mousedown$ = Observable.fromEvent(this.handle, 'mousedown');
, чтобы только взять event.which === 1