由嵌套复选框触发的Angular tr-ng Click事件

时间:2014-04-02 09:12:38

标签: angularjs

我有一个表格,每行都有一个复选框。表行侦听ng-click和复选框ng-change:

<tr ng-repeat="box in boxList | box_expect:searchText" ng-click="openBox(box._id)">
    <td>...</td>
    <td>...</td>
    <td>...</td>
    <td><input type="checkbox" ng-change="checkBoxChanged(id)" ...></td>
</tr>

每次单击复选框,我都会触发表格行的ng-click事件。

我将ng-click更改为ng-doubleClick,但双击移动设备并不方便处理。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您可以创建一个指令,停止在复选框(DEMO)上传播点击事件。

app.directive('noclick', [function() {
    return {
      restrict: 'A',
      link: function link(scope, element, attrs) {
        element.bind('click', function(e) {
            e.stopPropagation();
        });
      }
    }
}]);

并将其添加到您的复选框:

<input type="checkbox" ng-change="checkBoxChanged(id)" ng-model="loremIpsum" noclick>