2013-08-06 1 views
3

jQuery가 jqLite를 대체하므로 jQuery를 사용하지 않고 jQuery를 사용하여 jQuery를 사용하지 않고 jQuery를 사용하지 않고 내 AngularJS 앱을 테스트하고 싶습니다. jQuery는 사용할 수 없습니다. jQuery와 jqLite에는 실제 차이가 있으므로 유닛 테스트에서 AngularJS에 jQuery를 사용할 수있는 위험이 있습니다.jquery없이 이스케이프 키 누르기 시뮬레이션

대부분의 테스트는 jQuery 없이도 잘 작동하지만 escape 키의 keydown을 트리거해야합니다. jQuery를 사용하는 방법 만 알 수 있습니다. Javascript에서 크로스 브라우저 방식으로 어떻게 처리할까요?

이 지침은 다음과 같이 이스케이프 keydowns을 수신 :이 시도했습니다

body.bind('keydown', handledEscapeKey); 
var handledEscapeKey = function(e) { 
    if (e.which === 27) { 
    e.preventDefault(); 
    scope.$apply(scope.hideTooltip()); 
    } 
}; 

그러나 작동하지 않습니다

if(window.KeyEvent) { 
    var evObj = $document.createEvent('KeyEvents'); 
    evObj.initKeyEvent('keydown', true, true, $window, false, false, false, false, 27, 0); 
} else { 
    var evObj = $document.createEvent('UIEvents'); 
    evObj.initUIEvent('keydown', true, true, $window, 1); 
    evObj.keyCode = 27; 
} 

elm[0][0].dispatchEvent(evObj); 

답변

-3

당신은 http://angular-ui.github.io/ui-utils/

@ 각도 UI를 체크 아웃 할 수 있습니다
<textarea ui-keydown="{27:'keydownCallback($event)'}"></textarea> 
+0

어떻게 도움이 될까요? – Maarten

+0

안녕하세요, –

+0

에 게시 된 업데이트를 사용하여 그 부분을 테스트 할 수 있습니까? – Maarten