在ng-click中传递$event是否必要?

4

我刚接触AngularJS并正在探索事件处理程序。我正在查看现有的代码库,不知道为什么要传递$event。以下是HTML代码:

<p><a ng-click="packBtnClick($event)" href="#" title="">[[btnAction]]</a></p>

在控制器中,

$scope.packBtnClick = function($e){
  $e.preventDefault();
  if($scope.packAvailable){
     addPackIntoCart();
   }
  else{
    //some other code. 
 };

在这里传递事件的唯一目的是为了preventDefault行为。
我的问题是 - 真的需要传入$event吗?

1个回答

3
如果你想调用preventDefault,那么使用$event是必要的;否则就没有必要。如果你不需要调用$event中的任何内容,可以安全地删除它,因为不传递它不会阻止事件发生。
你可以在这里找到$event文档here。它只是一个包装器,当jQuery存在时,它是jQuery事件对象,或者使用jqLite时类似的东西。你可以查看事件对象以获取可能公开的属性和函数的完整列表。不能保证jqLite公开所有相同的属性和函数,但在几乎所有情况下都应该非常接近。

谢谢。我怎么知道$event暴露了什么? - Shruti Kapoor
@ShrutiKapoor 不用谢。我已经更新了我的答案,加入了$event文档。 - David L

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接