Заверните html, который "съедает" события, в директиву, которая будет слушать эти события и вызывать сервис, который будет предоставлять возможность подписаться на них.
Типа
<proxy-events on="['click', 'mousemove', 'touchstart']" id="eventGroup1">
...
</proxy-events>
Это в директиве canvas
EventProxy.subscribe('eventGroup1', function(eventType, event) {
console.log(eventType, event);
});
С помощью angular-tiny-eventemitter задача элементарная