Nel seguente esempio:AngularJS - Multiple ng-click - evento di bubbling
<li ng-repeat="item in items" ng-click="showItem(item)">
<h3>{{item.title}}</h3>
<button ng-click="remove(item)">Remove</button>
</li>
Quando clicco sul pulsante showItem()
anche viene richiamato a causa di evento di bubbling. So che posso usare $event
per guardare $event.currentTarget
e fare $event.stopPropagation()
ecc. Ma questo è molto brutto.
Btw. Non voglio smettere di propagazione sul button
(Nel mio caso il button
è un twitter bootstrap
dopdown/button
- questo è solo un esempio)
Come arresto showItem()
da beeing chiamato quando clicco sul pulsante remove
?
EDIT Il brutto correzione sarebbe quella di avere:
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
}
Se non è possibile utilizzare stopPropagation, si dovrà ristrutturare la tua dom in modo che non siano nidificati. È possibile? –