javascript - 以 Angular 添加 Controller 特定文档 addeventlistener

标签 javascript angularjs mean-stack

我正在开发一个用于进行在线测验的网络应用程序。我为此使用平均堆栈。在我的在线测试 Controller 中,我使用了许多事件监听器,例如

document.addEventListener("visibilitychange", onchange);
document.webkitIsFullScreen etc..

但我的问题是这个函数在移动到其他 Controller 后仍然执行,因为这是全局 eventLisners。

有人可以建议我最好的方法吗?

最佳答案

当作用域被销毁时,或者“移动到其他 Controller 之后”,您需要删除事件监听器:

$scope.$on('$destroy',function() {
   document.removeEventListener('visibilitychange',onchange);
});

在组件被销毁时处理事件监听器的删除始终是一个好主意,特别是对于大型应用程序,因为这可能是单页应用程序内存泄漏问题的主要原因。

关于javascript - 以 Angular 添加 Controller 特定文档 addeventlistener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880973/

相关文章:

javascript - 回调函数可以是下一行代码吗

javascript - AngularJS REST 调用错误

javascript - 将 $scope 传递给服务是一种不好的做法吗?

node.js - 找不到有效的 Gruntfile

node.js - 无法通过 npm 安装 mongoose - 依赖失败 es6-promise 3.0.2

javascript - HTTP POST 请求从 Angular 前端表达服务器

javascript - 从 jSTL c :forEach ( function not defined) on page load 调用 jQuery 函数

javascript - 在 JavaScript 中模拟 'new' 运算符

javascript - 在 React 中更新行

javascript - Firebase signInwithRedirect() 总是转到本地主机而不是我的应用程序