在单击某个元素时,请考虑这种调用函数的简单旧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()
对象没有任何关系。
所以我的问题是:
span
传递给函数时this
的值是多少?
在函数中检索单击对象或将其传递给函数的最简单方法是什么?
答案 0 :(得分:5)
this
作为参数传递给ng-click
指令中的函数时,this
将引用当前的$scope
对象。$event
object,然后访问target
/ currentTarget
属性以获取对该元素的引用。例如(example):
<button ng-click="click($event)">Click Me!</button>
$scope.click = function (e) {
e.currentTarget.style.display = 'none';
}