I suppose that I should use directive, but it seems strange to add directive to body, but listen events on document.
What is a proper way to do this?
UPDATE:
Use $document.bind:
$document.bind
function FooCtrl($scope, $document) { ... $document.bind("keypress", function(event) { console.debug(event) }); ... }