gpt4 book ai didi

angularjs - 将 `this` 传递给 ng-click 中的函数会暴露什么?

转载 作者:行者123 更新时间:2023-12-01 03:39:42 25 4
gpt4 key购买 nike

假设我们有一个带有 ng-click 指令的按钮。它调用一个传递 this 的函数。作为论据。
经检查,传入的参数类型是对象,但既没有元素属性,也不是jQuery选择器。

究竟通过了什么?

最佳答案

ngClick和类似的指令在当前范围的上下文中执行。所以this指范围对象。

如果您没有 ngRepeat , ngInclude或其他创建新范围的指令,然后您可以检查 Controller 功能并验证此 ng-click="test(this)"会通过something$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>

您将拥有 something作为主的 child $scope :
$scope.test = function(something) {
console.log(something.$parent === $scope); // => true
};

演示: http://plnkr.co/edit/nxxCn7SYUA4PfJpJoueu?p=info

关于angularjs - 将 `this` 传递给 ng-click 中的函数会暴露什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com