AngularJS - wielokrotne ng-click - propagacja zdarzeń
W następującym przykładzie:
<li ng-repeat="item in items" ng-click="showItem(item)">
<h3>{{item.title}}</h3>
<button ng-click="remove(item)">Remove</button>
</li>
Po kliknięciu przyciskushowItem()
jest także wywoływany z powodu propagacji zdarzeń. Wiem, że mogę użyć$event
obserwować$event.currentTarget
i robić$event.stopPropagation()
itd., ale to jest bardzo brzydkie.
Btw. Nie chcę przestać propagować wbutton
(W moim przypadkubutton
jesttwitter bootstrap
dopdown/button
- To tylko przykład)
Jak się zatrzymaćshowItem()
od połączenia, gdy kliknę naremove
przycisk?
EDYTOWAĆ Brzydką poprawką byłoby mieć:
function remove(item,$event){
$event.originalEvent.prevent = true;
// rest of the code
}
function showItem(item,$event){
if($event.originalEvent.prevent)return;
// rest of the code
}