用另一次ng-click覆盖点击(例如ng-click)

时间:2015-01-28 00:11:56

标签: javascript angularjs

我有一个通过ng-click调用功能的按钮。我希望在此按钮中有一个详细信息“按钮”,单击此按钮将通过ng-click调用不同的功能,但不是第一个功能。有关此问题,请参阅此plunker:http://plnkr.co/edit/CqLmZMKiGPfrvRpqvtMa?p=preview

  <button ng-click="sendAlert('button clicked')">
    <span class="text">Demo</span>
    <span class="toggle" ng-click="sendAlert('? clicked')">
          <i class="fa fa-info-circle"></i>
      </span>
  </button>

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

ng-click只是下面的click事件,它就像许多其他事件一样起泡。因此,在您点击按钮内的图标时,它会运行自己的点击事件并冒泡并执行在其父按钮上注册的点击事件。您可以通过执行event.stopPropgation()来传递$event对象并停止传播到父对象。

尝试:

<button ng-click="sendAlert($event, 'button clicked')">
  <span class="text">Demo</span>
  <span class="toggle" ng-click="sendAlert($event, 'child')">
      <i class="fa fa-info-circle"></i>
  </span>
</button>

$scope.sendAlert = function(e,alertMessage) {
    e.stopPropagation();
    alert(alertMessage);
  };

<强> Demo