什么是传递给ng-click函数调用的'this'对象?

时间:2015-11-16 19:12:09

标签: javascript angularjs

在单击某个元素时,请考虑这种调用函数的简单旧JavaScript(非Angular)形式:

<span id="foo1" onclick="clicked(this)">...</span>

this的{​​{1}}参数是clicked()对象(span),点击后。

当此代码转换为AngularJS时,我们尝试传递相同的foo1对象:

this

然而,现在,传递给<span id="foo2" ng-click="clicked(this)">...</span> 的参数是一个对象,但它似乎与clicked()对象没有任何关系。

所以我的问题是:

  1. span传递给函数时this的值是多少?

  2. 在函数中检索单击对象或将其传递给函数的最简单方法是什么?

1 个答案:

答案 0 :(得分:5)

    1. this作为参数传递给ng-click指令中的函数时,this将引用当前的$scope对象。
    1. 您可以传递$event object,然后访问target / currentTarget属性以获取对该元素的引用。
    2. 例如(example)

      <button ng-click="click($event)">Click Me!</button>
      
         
      $scope.click = function (e) {
        e.currentTarget.style.display = 'none';
      }