【发布时间】:2025-12-30 12:55:16
【问题描述】:
我知道如果我像这样传入$event 对象,我可以从ng-click 访问点击事件:
<button ng-click="myFunction($event)">Give me the $event</button>
<script>
function myFunction (event) {
typeof event !== "undefined" // true
}
</script>
每次都必须明确传递$event 有点烦人。是否可以将ng-click 设置为默认将其传递给函数?
【问题讨论】:
-
我知道代码只是为了演示,但
undefined应该是"undefined",否则表达式将始终为 false,因为typeof返回一个字符串。 -
我想知道你为什么需要
$event。 -
@zeroflagL 事件对象通常用于停止冒泡/传播。
-
@Stewie
myFunction是控制器的一部分。控制器不应该关心 UI。此外,一个简单的按钮没有默认操作。无论如何,角度确实会阻止许多默认操作。因此,当然,尽管您是对的,但很难想象一个好的用例。 -
@zeroflagL 我有一个指令
contextMenu,它为范围(打开、关闭、切换)提供了几个函数,这些函数以特定contextMenu的名称调用,例如ng-click="account_menu.toggle()"。菜单本身位于不同的元素中,例如<div context-menu="account_menu"></div>"。为了将菜单正确定位在名为toggle()的触发元素正下方的页面上,我想访问ng-click的$event.target元素,以便获得它的坐标。如果有更简单的方法,请告诉我:)
标签: javascript angularjs angularjs-directive dom-events angularjs-ng-click