假设我们有一个带有ng-click指令的按钮.它调用一个函数将其作为参数传递.
经过检查,发现传递的参数类型是一个对象.但它既没有任何元素属性,也不是jQuery选择器.
到底是什么?
最佳答案 ngClick和类似指令在当前范围的上下文中执行.所以这指的是范围对象.
如果你没有创建新范围的ngRepeat,ngInclude或其他指令,那么你可以签入控制器函数并验证这个ng-click =“test(this)”会传递一些东西作为$scope:
$scope.test = function(something) {
console.log(something === $scope); // => true
}
另一个例子.使用ngRepeat,每次迭代都会获得新的子范围,因此在这种情况下,如果您有此列表:
<li ng-repeat="n in numbers">
<button ng-click="test(this)">{{n}}</button>
</li>
你会有一些东西是主要范围的孩子:
$scope.test = function(something) {
console.log(something.$parent === $scope); // => true
};