离开路线时的角度解除绑定事件

时间:2015-04-20 14:27:19

标签: javascript angularjs javascript-events

我的应用程序中的一个路由需要一些特殊的按键事件绑定,但没有其他路由可以。

所以,在那条路线的控制器中,我就像这样绑定事件:

angular.element( document.body ).bind('keydown keypress', function (event)
{
   //...
});

我刚注意到当我导航到那条路线,然后离开并转到另一条路线时,那些键盘事件绑定仍处于活动状态。

当路由更改为其他控制器时,如何取消绑定事件?

2 个答案:

答案 0 :(得分:2)

当范围被破坏时,你可以取消绑定事件。

$scope.$on('$destroy', function() {
    angular.element( document.body ).unbind('keydown keypress', handler);
});

http://api.jquery.com/unbind/提供了有关如何取消绑定事件的参考资料。

每当范围以角度方式销毁时,$ destroy事件就会被触发。

答案 1 :(得分:0)

当范围被销毁时,您可以使用jqLit​​e中的unbind函数。