2013-12-09 2 views
0

Что делать, если я хочу широко заданный ng-click на большой панели, но я хочу, чтобы любые теги ссылок запускали только поведение ссылки, а не ng-click? Пример:Угловые - подавление широко определенных событий для узко определенных элементов

<div ng-click="doIt()"> 
    <div>Lots of other stuff...</div> 

    <!-- I don't want this or any other links to trigger the ng-click behavior --> 
    <a href='http://www.amazon.com' target="_blank"></a> 
</div> 
+0

Не очень знакомы с угловыми, но можете ли вы просто определить, что ваши собственные слушатели событий javascript вызывают вызов любого ng-click? – echochamber

+0

Ну, я все же предпочел бы сохранить ng-click там из-за своей угловой прохлады - просто интересно, могут ли некоторые внутренние вещи выборочно переопределить его, остановить распространение события и т. Д. – blaster

ответ

1

Вы можете прикрепить ng-click к ссылкам вы не хотите, чтобы быть затронуты и использовать $event.stopPropagation();

В контроллере.

$scope.dontDoIt = function($event){ 
    $event.stopPropagation(); 
}; 

Внутри вашего вида.

<div ng-click="doIt()"> 
    <div>Lots of other stuff...</div> 

    <!-- I don't want this or any other links to trigger the ng-click behavior --> 
    <a href='http://www.amazon.com' ng-click="dontDoIt($event)" target="_blank"></a> 
</div> 

Fiddle пример.

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