2013-05-13 2 views
2

확실한 게 분명하지 않지만 키 누르기 이벤트에 응답하는 방법은 무엇입니까? 어디서나 페이지에 있습니까?Ember에서 글로벌 keyPress 이벤트를 catch하는 방법

예를 들어 동영상 플레이어가 있고 사용자가 언제든지 스페이스 바를 누르면 일시 중지하고 싶다고 말합니다. 또는 게임을 작성하고 특정보기 또는 하위보기와 상관없이 화살표 키가 문자를 지시하도록하려고합니다.

정의 App.ApplicationView = Ember.View.create({ keyPress: whatever })이 작동하지 않는 것 같습니다. 나는 모든 keypress 이벤트가 그렇게 될 것이라고 생각했을 것이다. 엠버을 통해 제외

$(document).keypress(function(e) { 
    alert('You pressed a key!'); 
}); 

:

나는 내가하고 싶은 것은 같아요.

답변

3

글로벌 키 누르기를 찾으려면 위의 코드 예제가 가장 좋은 해결책 일 것입니다. Ember 응용 프로그램은 본문 (또는 사용자가 정의한 루트 요소)에 첨부되어 있으며보기에 어떤 종류의 초점이 필요합니다. 예를 들어, 당신은 할 수 :

App.ApplicationView = Em.View.extend({ 
    keyUp: function(){ 
    alert(1); 
    } 
}); 

이 작동하지만 응용 프로그램보기 또는 아이는 초점을해야합니다. 예를 들어 모든 입력 필드의 키 이벤트를 캡처하려는 경우에 유용합니다.

+1

하위 뷰에 포커스가있을 때 응용 프로그램 수준 이벤트가 손실 되어도 여전히 최상의 Ember 방법으로이를 검색합니다. – jrode

관련 문제