2014-01-18 4 views
0

을 추가 한 후 마우스 핸들러가 작동하지 추가 내가 내 자바 스크립트 코드 중 하나를 캔버스 요소를 통과 다음과 같은 기능을 가지고 : 내 코드에서 AngularJS와 추가 해달라고하면내가 AngularJS와

function addMouseHandler(canvas) { 
    console.log(canvas); //first console log for logging canvas 
    canvas.addEventListener('mousemove', function (e) { 
     onMouseMove(e); 
    }, false); 
    canvas.addEventListener('mousedown', function (e) { 
     console.log('here'); //second log for logging we are inside event listener 
     onMouseDown(e); 
    }, false); 
    canvas.addEventListener('mouseup', function (e) { 
     onMouseUp(e); 
    }, false); 
} 

이 잘 작동합니다. 그러나 AngularJS를 추가 한 후에 코드는 addEventListener() 메소드에 포함되지 않습니다.

내 코드는 여전히 처음을 console.log()를 기록하고 제대로 내 캔버스 요소를 기록

<canvas width="945" height="550" id="mycanvas"></canvas> 

을하지만 지금은 addEventListener() 메서드 내에서 이동하지 않습니다. console.log ('여기')를 사용하여 체크했으나 결코 호출되지 않습니다.

업데이트 : ng-app = "myApp"를 body 요소에 <body ng-app="myApp">으로 추가 한 다음이 addEventListener가 작동을 멈췄습니다. 내 코드에서 다른 것은 없다.

+0

_ "조언 ​​해주세요"_ 의미 하시겠습니까 _ "추측 해주십시오"_? Angular 관련 코드를 게시하는 방법이 아닌가요? – gkalpak

+0

ng-app = "myApp"를 ng-app = "myApp">와 같이 요소에 추가 한 다음이 addEventListener가 작동을 멈췄습니다. 내 코드에서 다른 것은 없다. 또한 내 질문에서 '제발 조언'을 제거합니다. –

+0

그러면 각도 관련 코드를 테스트해야합니다. – gkalpak

답변

0

문제가 발견되었습니다. 컨트롤러에 선언 된 시간이 2 번이었습니다. 한 번 컨트롤러가 있고 다른 컨트롤러가 myApp.controller()입니다. 그래서 캔버스가 두 번 만들어졌고 마우스 리스너가 엉망이되었습니다.