2015-02-03 4 views
4

Как я могу использовать пространство имен DOM в AngularJS?Пространство имен угловых пространств DOM

У меня есть некоторые директивы, которые связывают события мыши на документе:

$document.on('mousemove'); 
$document.on('mouseup'); 

После MouseUp я делаю:

$document.off('mousemove'); 
$document.off('mouseup'); 

И тогда некоторые другие директивы не работает, потому что события были уничтожены.

В документации ANGULAR для angular.element написано:

on() — Does not support namespaces, selectors or eventData 

Ну, но я думаю, что мне нужно event namespaces таргетинг, какие события для удаления. И что же мне делать?

+1

Как насчет удаления определенных обработчиков? – raina77ow

+0

OMG, я забыл о дополнительных параметрах в методе .off() (facepalm). Оно работает. Сделайте свой комментарий ответом, я приму его. – artuska

ответ

4

Несмотря на то, что jqLite не поддерживает пространства имен (хотя, по крайней мере), вы всегда можете использовать .off() с параметром handler, чтобы указать, какой прослушиватель вы должны удалить. Например:

function mouseMoveHandler() { 
    // do some stuff 
} 
$document.on('mousemove', mouseMoveHandler); 
// ... and later on 
$document.off('mousemove', mouseMoveHandler); 
Смежные вопросы