2014-03-04 17 views
11

Ich habe den folgenden Code:ng Klick in Mutter div auch in Kind div

 <table class="table"> 
      <tr> 
       <th>Name___</th> 
      </tr> 
      <tr ng-repeat="app in apps" 
       ng-click="go('/editApp/' + plugin.name);"> 

       <td> 
        <span>{{app.name}}</span> 
       </td> 
       <td style="width: 100px;"> 
        <i class="glyphicon glyphicon-pencil" 
           ng-click="openPopup(app)"></i> 
       </td> 
      </tr> 
     </table> 

Wenn ich auf dem OpenPopup klicken, auch unterwegs (Methode Brennen), wie kann ich das tun, wenn ich Klicken Sie auf Popup nur das Popup wird ausgelöst?

+2

den 'ng-click' von' tr' – Lekhnath

+0

Gut entfernen, wenn Sie ein untergeordnetes Element klicken haben Sie eigentlich zu seinen Eltern angeklickt. Dies wird als ** Ereignisverbreitung ** bezeichnet, insbesondere ** Ereignisblubbern ** –

Antwort

32

Diese Ausführung, weil Ihr <td> in <tr> verschachtelt, und klicken Sie zunächst openPopup()

dann go() gefeuert gefeuert. Sie können $event.stopPropagation() für die Übertragung von Stoppereignissen auf <tr> verwenden. Versuchen

 <table class="table"> 
     <tr> 
      <th>Name___</th> 
     </tr> 
     <tr ng-repeat="app in apps" 
      ng-click="go('/editApp/' + plugin.name);"> 

      <td> 
       <span>{{app.name}}</span> 
      </td> 
      <td style="width: 100px;"> 
       <i class="glyphicon glyphicon-pencil" 
          ng-click="openPopup(app);$event.stopPropagation()"></i> 
      </td> 
     </tr> 
    </table> 
+0

Ausgezeichnet! Gut gearbeitet. –