W poniższym przykładzie:angularjs - Wiele ng-click - event przepuszczając
<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 na przycisk showItem()
również wywoływany jest spowodowany przypadku propagacji. Wiem, że mogę użyć $event
do obejrzenia dla $event.currentTarget
i zrobić $event.stopPropagation()
itp., Ale to jest bardzo brzydkie.
Przy okazji. Nie chcę, aby zatrzymać rozprzestrzenianie się na button
(w moim przypadku button
jest twitter bootstrap
dopdown/button
- to tylko przykład)
Jak zatrzymać showItem()
od beeing nazywany po kliknięciu na przycisk remove
?
EDIT Brzydki fix 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
}
Jeśli nie można używać stopPropagation, trzeba będzie zrestrukturyzuj dom, aby nie były zagnieżdżone. Czy to jest możliwe? –