2013-08-06 4 views
3

Я бы хотел (unit) проверить мое приложение AngularJS, не прибегая к использованию jQuery, поскольку jQuery заменит jqLite, а в реальном приложении jQuery также не будет доступен. Существуют реальные различия между jQuery и jqLite, поэтому наличие jQuery, доступного для AngularJS в модульных тестах, является риском.Имитировать escape-нажатие клавиши без jquery

Большинство моих тестов отлично работают без jQuery, но мне нужно вызвать keydown для клавиши escape, что-то, что я могу узнать, как это сделать, используя 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

Вы можете оформить Угловое UI @http://angular-ui.github.io/ui-utils/

<textarea ui-keydown="{27:'keydownCallback($event)'}"></textarea> 
+0

как это поможет? – Maarten

+0

Привет, у меня есть обновленная информация для вас –

+0

, так что используйте это, а затем я могу выполнить тестирование этой части? – Maarten

Смежные вопросы