有没有办法强制ng-click首先在父项上执行,然后在子项上执行

时间:2015-10-08 23:02:10

标签: angularjs

这是which ng-click takes precedence in a table?

的后续问题

基本上,我想确保,无论何时单击单元格,都将首先执行action1,然后执行action2。有没有办法强制执行?

<table>
 <tbody>
  <tr ng-repeat="..."  ng-click="ctrl.action1()" >
    <td>
      <a class="..." ng-click="ctrl.action2()"><i class="..."></i></a>
    </td>
  </tr>
 </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

这是我能想到的最好的,不要让事件冒出来,并在action1

内拨打action2
<a class="..." ng-click="ctrl.action2($event)"><i class="..."></i></a>

控制器

$scope.action2 = function(evt){
     evt.stopPropagation();
     $scope.action1();
     // other action2 code
}

假设action1()中没有异步操作,您可能需要为该行上的数据项传递其他参数

还有一种方法可以在html中删除action2,将事件传递给第一行并检查事件目标