我的应用程序中的一个路由需要一些特殊的 keypress
事件绑定(bind),但其他路由都不需要。
因此,在该路线的 Controller 中,我像这样绑定(bind)事件:
angular.element( document.body ).bind('keydown keypress', function (event)
{
//...
});
我刚刚注意到,当我导航到该路线,然后离开并转到不同的路线时,这些键盘事件绑定(bind)仍然处于事件状态。
当路由更改为不同的 Controller 时,如何解除事件绑定(bind)?
最佳答案
当范围被破坏时,您可以取消绑定(bind)事件。
$scope.$on('$destroy', function() {
angular.element( document.body ).unbind('keydown keypress', handler);
});
http://api.jquery.com/unbind/有关于如何解除事件绑定(bind)的引用。
只要作用域在 Angular 上被破坏,$destroy 事件就会被触发。
关于javascript - 离开路线时 Angular 解除绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750633/