AngularJS - multiple ng-click - event bubbling AngularJS - multiple ng-click - event bubbling angularjs angularjs

AngularJS - multiple ng-click - event bubbling


This solution worked for me (I'm only supporting recent browsers, so I tried to modify the code to be more retro-compatible):

HTML:

<li ng-repeat="item in items" ng-click="showItem(item)">    <h3>{{item.title}}</h3>    <button ng-click="remove(item, $event)">Remove</button></li>

Scripts:

function remove(item, $event) {    // do some code here    // Prevent bubbling to showItem.    // On recent browsers, only $event.stopPropagation() is needed    if ($event.stopPropagation) $event.stopPropagation();    if ($event.preventDefault) $event.preventDefault();    $event.cancelBubble = true;    $event.returnValue = false;}function showItem(item) {    // code here}

EDIT - Added a JSFiddle demo to try it outhttp://jsfiddle.net/24e7mapp/1/


showItem can be updated to return early if the passed in item no longer exists:

function remove(item) {  if (-1 == $scope.items.indexOf(item)) {    // Item no longer exists, return early    return;  }  // Rest of code here}