Unit testing 不使用jquery模拟escape按键
我想(单元)测试我的AngularJS应用程序,而不用使用jQuery,因为jQuery将取代jqLite,而在真正的应用程序中jQuery也不可用。 jQuery和jqLite之间确实存在差异,因此在单元测试中让jQuery可用于AngularJS是一种风险 现在,我的大多数测试在没有jQuery的情况下都可以正常工作,但是我需要为escape键触发一个keydown,我只能找到如何使用jQuery。我将如何以跨浏览器的方式在Javascript中实现这一点 该指令将侦听以下转义键:Unit testing 不使用jquery模拟escape按键,unit-testing,angularjs,jqlite,Unit Testing,Angularjs,Jqlite,我想(单元)测试我的AngularJS应用程序,而不用使用jQuery,因为jQuery将取代jqLite,而在真正的应用程序中jQuery也不可用。 jQuery和jqLite之间确实存在差异,因此在单元测试中让jQuery可用于AngularJS是一种风险 现在,我的大多数测试在没有jQuery的情况下都可以正常工作,但是我需要为escape键触发一个keydown,我只能找到如何使用jQuery。我将如何以跨浏览器的方式在Javascript中实现这一点 该指令将侦听以下转义键: body
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);
您可以签出Angular UI@
问题不是“如何才能最好地听escape按键”,而是“如何在没有jQuery的情况下模拟ESC按键”。
<textarea ui-keydown="{27:'keydownCallback($event)'}"></textarea>