2013-10-15 5 views
2

С выпуском AngularJS 1.2.0-rc.3 я возился с ngCut, ngCopy и ngPaste, но я не смог их отменить. Я решил, что спецификация не позволяет этого, но это так. Это должно быть возможно ... на самом деле не может найти ничего, ища (только об отмене распространения). Есть идеи?Как я могу отменить ngEvent?

http://jsfiddle.net/XEEpv/

ответ

4

Не уверен, что вы имеете в виду именно по «отменить событие», но то, что вы можете сделать с события:

  • preventDefault() поэтому действие по умолчанию, что это событие, как правило, запуск не происходит
  • stopPropagation() поэтому событие не BUBLE вверх в DOM herarchy

Я предполагаю, что вы хотите, чтобы отменить действие по умолчанию, то есть вызовите preventDefault() на событие:

$scope.cut = function ($event) { 
    console.log('cut', $event); 
    $event.preventDefault(); 
} 

jsFiddle здесь: http://jsfiddle.net/M5jRW/

+0

Ahh, это имеет смысл для меня сейчас ... Угловой не знает, что '$ scope.cut' привязан к событию, которое можно отменить, поэтому оно не заботиться о возвращаемом значении. 'preventDefault' и' $ event.returnValue' (ответил Джон), чтобы получить то, что я хочу. Кажется, что '$ event.returnValue' может быть больше в соответствии с угловым способом, а? – Langdon

+0

@ Langdon не уверен, какие критерии вы использовали для штампа '$ event.returnValue' как« больше AngularJS way »:-) –

+0

Я думаю, что он означает, что' returnValue' больше соответствует вводу/выводу, а 'preventDefault' - больше побочного эффекта. – sonicblis

1

Вы можете установить $event.returnValue ложь:

function x($scope) { 
    $scope.cut = function ($event) { 
     $event.returnValue = false; 
     console.log('cut', $event); 
    } 
    $scope.kp = function ($event) { 
     console.log('keypress', $event); 
     return false; 
    } 
} 

Вот ваша обновленная скрипка: http://jsfiddle.net/XEEpv/1/

+0

$ event.returnValue теперь осуждается: * event.returnValue осуждается. Вместо этого используйте стандартное событие event.preventDefault() * – Langdon

Смежные вопросы