我正在开发一个用于进行在线测验的网络应用程序。我为此使用平均堆栈。在我的在线测试 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/