一尘不染

用ng-click自动传递$ event?

angularjs

我知道,ng-click如果$event像这样传递对象,就可以访问click事件:

<button ng-click="myFunction($event)">Give me the $event</button>

<script>
  function myFunction (event) {
    typeof event !== "undefined" // true
  }
</script>

$event每次必须显式地通过都会有点烦人。是否可以设置ng-click为默认将其传递给函数?


阅读 302

收藏
2020-07-04

共1个答案

一尘不染

看看ng-click指令源:

...
compile: function($element, attr) {
  var fn = $parse(attr[directiveName]);
  return function(scope, element, attr) {
    element.on(lowercase(name), function(event) {
      scope.$apply(function() {
        fn(scope, {$event:event});
      });
    });
  };
}

它显示了如何将event对象作为参数名称
传递ng-click表达式$event。这是通过$ parse服务完成的,该服务不允许参数 渗入 目标作用域,这意味着
答案为no ,您只能$event通过回调参数来访问对象。

2020-07-04