2014-06-16 3 views
1

anglejs에서 빌드하려고하는 타이핑 교육 프로그램을 시뮬레이트하는 장난감 응용 프로그램이 있습니다. 어떤 템플릿에서도 ng-keypress를 성공적으로 사용할 수 없어 레이아웃의 body 태그에 부착해야했습니다. 이것은 약간 어색하다고 느낀다 그러나 다른 것은 작동하는 것처럼 보인다.Angularjs의 문서 레벨 키 누르기 이벤트 캡처

<!DOCTYPE html> 
<html ng-app='TypingTrainer'> 
<head> 
    <title>Typing Trainer</title> 
    <%= stylesheet_link_tag 'application', media: 'all'%> 
    <%= javascript_include_tag 'application', controller_name %> 
    <%= javascript_include_tag 'main' %> 
    <%= csrf_meta_tags %> 
</head> 
<body ng-keypress="$broadcast('my:keyup', $event)"> 

<%= yield %> 

</body> 
</html> 

내가이 기능을 호출하기위한 컨트롤러입니다. 청취 기능은 사용자가 잘못된 문자를 입력 한 경우 커서를 움직여 문자 색상을 빨간색으로 변경합니다.

$scope.$on "my:keyup", (event, keyEvent) -> 
    console.log(keyEvent) 
    $scope.listen(keyEvent) 

감사합니다.

답변

0

당신은 제로로 tabindex 속성을 설정 div 추가 할 수 있습니다

또한 해킹,하지만 작동하는 것 같다
<div tabindex="0" ng-keypress="$broadcast('my:keyup', $event)"> 
    ... 
</div> 

.

관련 문제