gpt4 book ai didi

javascript - 检测事件监听器是否附加到 Angular 中的指令

转载 作者:行者123 更新时间:2023-12-03 06:15:55 24 4
gpt4 key购买 nike

在我的指令中,我定义了以下事件:

function wizard() {
return {
scope: {
raiseCancel: '&onCancel'
},

然后,我尝试检查是否已附加监听器。如果不是,我想执行一些默认行为。

if (scope.raiseCancel) scope.raiseCancel();
else $window.history.back();

但显然 scope.raiseCancel 将始终为真,因为 Angular 会分配一个匿名函数,在没有附加事件监听器时调用 angular.noop。如何检测我的事件是否有监听器?

最佳答案

您应该将 raiseCancel 作为事件处理程序来处理,返回 false 以防止默认行为。

当然,这意味着在 raiseCancel 处理程序中传递的代码发生了变化

if (scope.raiseCancel == null || scope.raiseCancel() !== false) {
$window.history.back();
}

关于javascript - 检测事件监听器是否附加到 Angular 中的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104098/

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