0

我正在尝试使用 angular-touch 模块及其 $swipe 服务以及 html5 画布制作一个基本的绘图程序,这是我想出的,它包含在我知道有效的模块和控制器中

this.canvas=angular.element('canvas')[0];
console.log(this.canvas.on)
this.canvasCord=angular.element(this.canvas).offset();
var ctx=this.canvas.getContext('2d');
$swipe.bind(angular.element('canvas'),{start:this.startDraw,move:this.coninueDraw,end:this.continueDraw,cancel:function(event){console.log(event);}},["mouse","touch"]);
var convertCord=function(cord){
    cord.x=cord.x-this.canvasCord.left;
    cord.y=cord.y-this.canvasCord.top;
    return cord;
};
this.startDraw=function(cord,event){
    console.log('starting')
    cord=convertCord(cord);
    ctx.beginPath()
    ctx.moveTo(cord.x,cord.y);
    ctx.lineWidth='5';
};
this.continueDraw=function(cord,event){
    console.log(cord);
    cord=convertCord(cord);
    ctx.lineTo(cord.x,cord.y);
    ctx.stroke();
};

我的画布的 html 只是一个基本的<canvas></canvas>

我的问题是,当元素被触摸或单击或滑动时,作为一部分的事件函数$swipe.bind()从未真正被调用。我似乎可以开始工作的唯一回调是我在短时间内重复点击或单击画布的取消。我正在使用 jquery mobile,但在 jquery 和 jquery mobile 之后加载 angularjs 和 angularjs-touch。有谁知道为什么这不起作用?

4

1 回答 1

0

我发现我的问题是对对象的引用,在将它们转换为普通变量而不是将它们附加到修复它的 this 对象this中,this 的定义不同。$swipe

于 2015-12-07T03:55:14.787 回答